:root{--p-bg:#f5f6f8;--p-card:#fff;--p-text:#1b2130;--p-muted:#657082;--p-border:#dde1e8;--p-accent:#2858c9;--p-accent-text:#fff;--p-warn-bg:#fff3d1;--p-warn-text:#6f4c00;--p-error-bg:#fde6e7;--p-error-text:#a31f28;--p-moved-bg:#e6eefc;--p-moved-text:#1f4598;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--p-bg:#14171d;--p-card:#1f232b;--p-text:#e6e8ec;--p-muted:#9aa3b2;--p-border:#363c48;--p-accent:#7199f2;--p-accent-text:#0e1320;--p-warn-bg:#3a3118;--p-warn-text:#f2d48a;--p-error-bg:#3e1f23;--p-error-text:#f49aa0;--p-moved-bg:#1e2b45;--p-moved-text:#a9c1f5}}body{background:var(--p-bg);color:var(--p-text);margin:0}.muted{color:var(--p-muted)}.small{font-size:.85rem}.p-screen,.p-app{max-width:56rem;padding:calc(.75rem + env(safe-area-inset-top,0px)) 1rem calc(1.5rem + env(safe-area-inset-bottom,0px));margin:0 auto}.p-screen h1{margin:.5rem 0 1rem;font-size:1.35rem}.p-form{flex-direction:column;gap:.85rem;max-width:30rem;display:flex}.p-field{flex-direction:column;gap:.25rem;font-weight:500;display:flex}.p-fieldset{border:1px solid var(--p-border);border-radius:8px;flex-direction:column;gap:.5rem;padding:.6rem .8rem;display:flex}.p-fieldset legend{padding:0 .3rem;font-weight:500}.p-check{align-items:center;gap:.5rem;min-height:2rem;display:flex}:where(.p-screen,.p-app) :is(select,input[type=date],input[type=search]){font:inherit;color:var(--p-text);background:var(--p-card);border:1px solid var(--p-border);border-radius:8px;max-width:100%;padding:.5rem}.p-btn{font:inherit;border:1px solid var(--p-border);background:var(--p-card);color:var(--p-text);cursor:pointer;border-radius:8px;padding:.5rem .85rem}.p-btn:disabled{opacity:.55;cursor:default}.p-btn-primary{background:var(--p-accent);border-color:var(--p-accent);color:var(--p-accent-text)}.p-btn-link{color:var(--p-accent);background:0 0;border:none;padding:.2rem}.p-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.p-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.p-link-row{gap:.4rem;display:flex}.p-link-row input{min-width:0;font:inherit;color:var(--p-text);background:var(--p-card);border:1px solid var(--p-border);border-radius:8px;flex:1;padding:.5rem;font-size:.8rem}.p-status{margin:.5rem 0}.p-status-line{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;display:flex}.p-alert{background:var(--p-moved-bg);color:var(--p-moved-text);border-radius:8px;margin:.5rem 0;padding:.55rem .75rem}.p-alert-warn{background:var(--p-warn-bg);color:var(--p-warn-text)}.p-alert-error{background:var(--p-error-bg);color:var(--p-error-text)}.p-tabs{background:var(--p-border);border-radius:10px;gap:.25rem;margin:.5rem 0;padding:.2rem;display:flex}.p-tabs button{font:inherit;color:var(--p-text);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:.45rem}.p-tabs button.active{background:var(--p-card);font-weight:600}.p-nav{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.5rem 0;display:flex}.p-title{text-align:center;flex:8rem;margin:0;font-size:1.05rem}.p-day{flex-direction:column;gap:.6rem;display:flex}.p-card{background:var(--p-card);border:1px solid var(--p-border);border-left:4px solid var(--p-accent);border-radius:10px;padding:.7rem .85rem}.p-card p{margin:.2rem 0}.p-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.p-time{font-weight:600}.p-subject{margin:.15rem 0;font-size:1.05rem}.p-note{background:var(--p-bg);border-radius:6px;padding:.3rem .5rem}.p-moved{color:var(--p-moved-text)}.p-badge{background:var(--p-warn-bg);color:var(--p-warn-text);border-radius:999px;padding:.1rem .5rem;font-size:.78rem}.p-badge.cancelled{background:var(--p-error-bg);color:var(--p-error-text)}.p-badge.moved{background:var(--p-moved-bg);color:var(--p-moved-text)}.p-card.cancelled{border-left-color:var(--p-error-text);opacity:.8}.p-card.cancelled .p-subject,.p-card.cancelled .p-time{text-decoration:line-through}.p-card.moved{border-left-color:var(--p-moved-text)}.p-empty{text-align:center;color:var(--p-muted);padding:2.5rem 0}.p-dialog{background:var(--p-bg);color:var(--p-text);border:none;border-radius:12px;width:min(26rem,100vw - 2rem);padding:1rem}.p-dialog::backdrop{background:#00000073}.p-dialog .p-btn{width:100%;margin-top:.6rem}.p-week-wrap{overflow-x:auto}.p-week{background:var(--p-card);border:1px solid var(--p-border);border-radius:10px;grid-template-columns:3rem repeat(7,minmax(5.5rem,1fr));display:grid}.p-week-head{font:inherit;border:none;border-bottom:1px solid var(--p-border);color:var(--p-text);cursor:pointer;background:0 0;padding:.4rem .1rem;font-size:.82rem}.p-week-head.today{color:var(--p-accent);font-weight:700}.p-week-corner{border-bottom:1px solid var(--p-border)}.p-week-hours{position:relative}.p-week-hours span{color:var(--p-muted);font-size:.72rem;position:absolute;right:.25rem}.p-week-col{border-left:1px solid var(--p-border);position:relative}.p-week-line{border-top:1px solid var(--p-border);opacity:.5;position:absolute;left:0;right:0}.p-block{box-sizing:border-box;font:inherit;text-align:left;border:1px solid var(--p-card);background:var(--p-accent);color:var(--p-accent-text);cursor:pointer;border-radius:5px;padding:.15rem .2rem;font-size:.72rem;line-height:1.15;position:absolute;overflow:hidden}.p-block.cancelled{background:var(--p-error-bg);color:var(--p-error-text);text-decoration:line-through}.p-block.moved{background:var(--p-moved-bg);color:var(--p-moved-text)}.p-block.modified{background:var(--p-warn-bg);color:var(--p-warn-text)}.p-month{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.p-month-weekday{text-align:center;color:var(--p-muted);padding:.2rem 0;font-size:.78rem}.p-month-cell{min-width:0;min-height:4.2rem;font:inherit;border:1px solid var(--p-border);background:var(--p-card);color:var(--p-text);cursor:pointer;text-align:left;border-radius:6px;flex-direction:column;align-items:flex-start;padding:.2rem;font-size:.8rem;display:flex;position:relative;overflow:hidden}.p-month-cell.other{opacity:.45}.p-month-cell.today{border-color:var(--p-accent)}.p-month-num{font-weight:600}.p-month-count{color:var(--p-accent);font-size:.72rem;font-weight:700;position:absolute;top:.15rem;right:.25rem}.p-month-titles{width:100%;color:var(--p-muted);flex-direction:column;font-size:.68rem;display:flex}.p-month-titles span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.p-month-titles .cancelled{text-decoration:line-through}
