:root{font-family:Inter,Noto Sans SC,Microsoft YaHei,sans-serif;color:#27334a;background:#f7f9fc;font-synthesis:none;font-size:14px;--surface:#fff;--bg:#f7f9fc;--line:#e9edf4;--text:#27334a;--muted:#8a94a6;--hover:#f1f5fb;--blue:#3569ed}[hidden]{display:none!important}.selection-range{display:block;margin-top:3px;color:var(--blue);font-size:10px}@media(pointer:coarse){.time-grid .hour-cell,.time-grid .cell-access,.time-grid .event{touch-action:pan-x pan-y}.time-grid .resize-handle{touch-action:none}}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;background:var(--surface);color:inherit;border:1px solid var(--line);border-radius:7px;padding:8px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,box-shadow .15s}button:hover{background:var(--hover)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid #91b4ff;outline-offset:2px}button.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 3px 6px #3569ed18}button.primary:hover{background:#2559d9}.icon{padding:7px;border-color:transparent;background:transparent}.small{padding:4px}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 30px;background:var(--surface)}.brand{display:flex;align-items:center;gap:12px}.brand-icon{background:#3569ed;color:#fff;display:grid;place-items:center;width:39px;height:39px;border-radius:12px}.brand strong{font-size:22px;letter-spacing:3px}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px;margin-top:2px}.top-actions{display:flex;align-items:center;gap:12px}.local-badge{font-size:11px;color:var(--muted);margin-right:12px;display:flex;align-items:center;gap:6px}.local-badge i{width:6px;height:6px;border-radius:50%;background:#44b78a}.workspace{display:flex;min-height:calc(100vh - 78px)}aside{width:244px;flex-shrink:0;padding:28px 20px;background:var(--surface);border-right:1px solid var(--line)}.side-heading{font-size:11px;color:#68768c;font-weight:600;display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.side-heading span{font-size:8px;letter-spacing:1px;color:#a8b0bd}.nav-active{width:100%;justify-content:flex-start;background:#edf3ff;border:0;color:#3569ed;font-weight:600;padding:12px}.nav-active span{margin-left:auto;font-size:10px;background:#fff;padding:2px 5px;border-radius:4px}.mini-title{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px;font-size:12px}.mini-title>div{display:flex}.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);row-gap:5px}.mini-calendar button,.mini-calendar span{font-size:10px;height:26px;text-align:center;border:0;border-radius:5px;padding:0}.mini-calendar .mini-day{color:var(--muted);padding-top:5px}.mini-calendar .muted{color:#c7ced9}.mini-calendar .mini-selected{background:#edf3ff;color:#3569ed}.mini-calendar .mini-today{background:#3569ed;color:#fff}.section-gap{margin-top:30px}.category{display:flex;width:100%;border:0;justify-content:flex-start;font-size:12px;margin:4px 0;padding:10px}.category>span:last-child{margin-left:auto;color:var(--muted);font-size:10px}.chosen{background:var(--hover)}.dot,.all-dot{display:inline-block;width:8px;height:8px;border-radius:3px;flex-shrink:0}.all-dot{background:#92a1b8}.dot.blue{background:#5a84f1}.dot.green{background:#46af8d}.dot.purple{background:#9b79db}.dot.orange{background:#e4a15d}.term-card{margin-top:30px;padding:17px 15px;background:var(--bg);border:1px solid var(--line);border-radius:10px}.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--muted);font-weight:600}.term-card strong{display:block;font-size:13px;margin-top:10px}.term-card p{font-size:10px;line-height:1.9;color:var(--muted)}.term-card button{border:0;padding:3px 0;background:transparent;color:#3569ed;font-size:11px}.data-tools{display:flex;margin-top:24px;justify-content:space-between}.data-tools button{border:0;padding:6px;font-size:11px;color:#77849a}.privacy{font-size:10px;color:#a1aabb;line-height:1.9;margin:15px 6px}main{padding:32px 34px;min-width:0;flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.page-heading h1{font-size:26px;letter-spacing:1px;margin:9px 0 10px;font-weight:650;display:flex;gap:15px;align-items:center}.page-heading h1 span{font-size:10px;letter-spacing:0;background:#eaf1ff;color:#527bc8;padding:6px 9px;border-radius:5px;font-weight:500}.page-heading p{font-size:12px;color:var(--muted);margin:0}.week-summary{display:grid;grid-template-columns:auto 1px auto;grid-template-rows:auto auto;column-gap:24px;text-align:center}.week-summary strong{font-size:25px;line-height:1.4;font-weight:500}.week-summary strong small{font-size:13px;color:var(--muted)}.week-summary span{font-size:10px;color:var(--muted);grid-row:2}.week-summary b{grid-column:2;grid-row:1/3;width:1px;background:var(--line);height:35px;align-self:center}.calendar-panel{border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 4px 20px #26354d03;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--line)}.week-navigation{display:flex;gap:4px;align-items:center}.week-navigation>button:first-child{font-size:11px;margin-right:8px;padding:7px 12px}.week-navigation strong{font-size:14px;font-weight:600;margin-left:10px}.view-label{font-size:11px;padding:7px 9px;background:var(--bg);border-radius:5px}.view-label span{font-size:9px;margin-left:12px;color:var(--muted)}.selection-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;min-height:46px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted);gap:10px}.selection-toolbar>div{display:flex;gap:7px;flex-shrink:0}.selection-toolbar button{font-size:10px;padding:5px 8px}.active-toggle{background:#eaf1ff;color:#3569ed;border-color:#a6c0fa}.calendar-scroll{overflow:auto;max-height:calc(100vh - 380px);min-height:320px;scrollbar-width:thin;scrollbar-color:#dce3ed transparent}.day-header{position:sticky;top:0;z-index:5;background:var(--surface);display:grid;grid-template-columns:64px repeat(7,minmax(90px,1fr));min-width:694px;border-bottom:1px solid var(--line)}.day-header>div{height:77px;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;border-left:1px solid var(--line)}.day-header>div:first-child{border:0}.day-header span{font-size:10px;color:var(--muted)}.day-header strong{font-size:23px;font-weight:500;line-height:31px}.day-header small{font-size:8px;color:var(--muted);position:absolute;bottom:8px;right:18px}.day-header .today-heading{background:#f7faff}.today-heading strong{background:#3569ed;color:#fff;border-radius:50%;width:33px;text-align:center}.day-header .today-heading small,.day-header .today-heading span{color:#3569ed}.timezone{font-size:9px;color:var(--muted)}.time-grid{display:grid;grid-template-columns:64px repeat(7,minmax(90px,1fr));min-width:694px;position:relative;-webkit-user-select:none;user-select:none;touch-action:pan-y}.hour-labels{position:relative}.hour-labels>div{position:relative;text-align:center}.hour-labels span{font-size:9px;color:#98a3b4;position:relative;top:6px}.hour-labels .end-label{position:absolute;bottom:0;top:auto;left:16px}.day-column{position:relative;border-left:1px solid var(--line)}.today-column{background:#f9fbff}.hour-cell{border-bottom:1px solid var(--line);position:relative;touch-action:none}.hour-cell:hover{background:#3569ed07}.hour-cell.selected{background:#dbe8ff;box-shadow:inset 2px 0 #6a97f8,inset -2px 0 #6a97f8}.cell-access{position:absolute;top:0;right:0;bottom:0;left:0;border:0;border-radius:0;padding:0;background:transparent;width:100%;height:100%;touch-action:none}.cell-access:hover{background:transparent}.event{position:absolute;border-radius:6px;padding:9px 9px 6px;border-left:3px solid;overflow:hidden;z-index:2;cursor:grab;touch-action:none;min-width:0}.event:hover{filter:brightness(.98);box-shadow:0 3px 9px #26354d12;z-index:3}.event.blue{background:#eaf1ff;border-color:#5a84f1;color:#3d62a9}.event.green{background:#e7f5ee;border-color:#49ad88;color:#318060}.event.purple{background:#f0eafb;border-color:#a184da;color:#7854ac}.event.orange{background:#fff1e3;border-color:#e5a365;color:#ae7840}.event-title{display:flex;gap:4px;align-items:center}.event strong{font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event>span{font-size:9px;display:block;margin-top:5px;opacity:.8}.event small{font-size:9px;opacity:.65;display:block;margin-top:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.event.done{opacity:.57}.event.done strong{text-decoration:line-through}.resize-handle{position:absolute;bottom:0;left:0;right:0;height:10px;cursor:ns-resize;display:grid;place-items:center}.resize-handle i{width:20px;height:2px;border-radius:2px;background:currentColor;opacity:.2}.move-preview{position:absolute;inset-inline:2px;border:2px dashed #3569ed;background:#3569ed22;pointer-events:none;z-index:4;font-size:11px;padding:5px}.now-line{position:absolute;height:1px;background:#f07c7c;inset-inline:0;z-index:4;pointer-events:none}.now-line i{position:absolute;width:6px;height:6px;border-radius:50%;background:#f07c7c;top:-3px;left:-3px}.calendar-footer{display:flex;justify-content:space-between;padding:13px 18px;font-size:9px;color:var(--muted);border-top:1px solid var(--line);gap:8px}.calendar-footer span{display:flex;align-items:center;gap:7px}.empty-hint{color:var(--muted);font-size:11px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:18px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16243d5c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:20;padding:20px}.modal{background:var(--surface);width:510px;max-width:100%;max-height:92vh;overflow:auto;border-radius:16px;padding:24px;box-shadow:0 20px 80px #14213a30}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal h2{font-size:19px;margin:0}.modal label{font-size:12px;display:block;margin:14px 0 6px;color:var(--text)}input,select,textarea{width:100%;padding:10px 11px;background:var(--surface);border:1px solid #dce3ee;color:var(--text);border-radius:7px;display:block;margin-top:7px}textarea{resize:vertical}.form-row{display:flex;gap:14px}.form-row label{flex:1;min-width:0}.field-help{color:var(--muted);font-size:10px;line-height:1.8;margin:6px 0 12px}.repeat-fields{background:var(--bg);padding:1px 13px 10px;border:1px solid var(--line);border-radius:9px}.repeat-fields p{font-size:10px;color:var(--muted);line-height:1.8}.color-options{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.color-options button{font-size:10px;padding:7px}.color-active{border-color:#7da2f6;box-shadow:0 0 0 1px #7da2f6}.checkbox{display:flex!important;align-items:center;gap:8px}.checkbox input{width:auto;margin:0}.modal-footer{border-top:1px solid var(--line);margin-top:23px;padding-top:18px;display:flex;justify-content:space-between;gap:10px}.modal-footer>div{display:flex;gap:8px}.modal-footer button{font-size:12px}.danger{color:#d16161}.scope{display:flex;background:var(--bg);padding:4px;border-radius:8px;gap:4px}.scope button{flex:1;font-size:11px;border:0;background:transparent}.scope .selected-scope{background:var(--surface);color:#3569ed;box-shadow:0 1px 5px #23354c0d}.range-list{background:var(--bg);padding:14px;border-radius:8px;max-height:180px;overflow:auto;margin-top:14px}.range-list strong,.range-list span{display:block;font-size:11px;margin:6px 0}.range-list span{color:var(--muted)}.confirm-message{line-height:1.9;font-size:13px;color:var(--muted)}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--surface);box-shadow:0 6px 30px #1e304b22;border:1px solid var(--line);border-radius:10px;padding:10px 14px;z-index:12;display:flex;align-items:center;gap:12px;font-size:12px;max-width:95vw}.toast>svg{color:#46af8d}.toast button{border:0;color:#3569ed;font-size:12px}.error-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);max-width:90vw;z-index:40;display:flex;align-items:center;gap:12px;background:#fff0ec;color:#a44338;border:1px solid #f5c7be;border-radius:8px;padding:12px 18px;font-size:12px;max-height:160px;overflow:auto}.error-banner button{flex-shrink:0}[data-theme=dark]{--surface:#1e2634;--bg:#171e2b;--line:#303a4a;--text:#d9e1ef;--muted:#8d9bb0;--hover:#2a3548;color:var(--text);background:var(--bg)}[data-theme=dark] .today-column,[data-theme=dark] .day-header .today-heading{background:#212e45}[data-theme=dark] .event.blue{background:#293c61;color:#aec6ff}[data-theme=dark] .event.green{background:#23483f;color:#9edfc3}[data-theme=dark] .event.purple{background:#403251;color:#d3b8f6}[data-theme=dark] .event.orange{background:#503e2d;color:#f2c38f}[data-theme=dark] .hour-cell.selected{background:#324b74}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{border-color:var(--line)}[data-theme=dark] .nav-active,[data-theme=dark] .mini-selected,[data-theme=dark] h1 span{background:#2b3e62;color:#b2cbff}@media(min-width:1500px){main{padding:40px 48px}.calendar-scroll{max-height:calc(100vh - 400px)}aside{width:260px;padding:30px 25px}}@media(max-width:1100px){aside{width:210px;padding:24px 15px}main{padding:26px 20px}.week-summary{display:none}.topbar{padding:0 20px}.local-badge{display:none}.page-heading h1{font-size:23px}.calendar-toolbar{padding:14px}.selection-toolbar{padding:8px 14px}}@media(max-width:760px){.topbar{height:68px;padding:0 12px}.brand{gap:8px}.brand small{display:none}.brand-icon{width:33px;height:33px}.brand strong{font-size:19px}.top-actions{gap:2px}.top-actions>.primary{font-size:11px;padding:9px}.workspace{display:block}aside{position:absolute;top:68px;bottom:0;left:0;overflow:auto;z-index:10;box-shadow:10px 0 30px #14213a15;width:230px}main{padding:24px 12px}.page-heading h1{font-size:23px;gap:10px}.page-heading h1 span{font-size:9px}.page-heading{margin-bottom:20px}.page-heading p{font-size:11px}.view-label{display:none}.week-navigation strong{font-size:12px;margin-left:5px}.selection-toolbar{align-items:flex-start;flex-direction:column;gap:8px;padding:10px}.calendar-scroll{max-height:calc(100vh - 325px)}.calendar-footer{font-size:8px;padding:11px 9px}.modal{padding:20px}.color-options button{font-size:9px}.toast{font-size:11px;white-space:nowrap}.empty-hint{font-size:10px}}
