:root{color:#17243c;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--blue:#155eef;--line:#e2e8f1;--muted:#68768b;--green:#15764d;background:#f5f7fb;font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button{border:0}a{color:var(--blue)}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #7ba9ff}input:focus,select:focus{border-color:var(--blue);outline:2px solid #8bb4ff}h1,h2,h3,p{margin:0}button{justify-content:center;align-items:center;gap:7px;display:inline-flex}small{color:var(--muted);font-size:.8rem;line-height:1.7}.subtle{color:var(--muted);font-size:.875rem;line-height:1.7}.eyebrow{letter-spacing:.1em;color:var(--muted);font-size:.75rem;font-weight:500}.app-shell{max-width:1660px;margin:auto;padding:0 32px 24px}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:88px;margin-bottom:27px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#fff;background:var(--blue);border-radius:13px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 4px 12px #155eef26}.brand strong{letter-spacing:.06em;font-size:1.125rem;display:block}.brand span{color:var(--muted);margin-top:2px;font-size:.75rem;display:block}.header-right{align-items:center;gap:12px;display:flex}.timezone{color:var(--muted);margin-right:8px;font-size:.8125rem}.icon-button{color:#58657a;background:0 0;border-radius:8px;flex-shrink:0;width:36px;height:36px}.icon-button:hover,.plain-button:hover{color:#163b7c;background:#eaf0fa}.plain-button{border:1px solid var(--line);color:#46536a;background:#fff;border-radius:8px;min-height:36px;padding:7px 12px;font-size:.875rem}.primary{background:var(--blue);color:#fff;border-radius:9px;min-height:44px;padding:12px 18px;font-weight:500}.primary:hover{background:#114dd1}.compact{min-height:36px;padding:8px 14px;font-size:.875rem}.text-button{color:var(--blue);background:0 0;padding:6px;font-size:.875rem}.button{justify-content:center;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.week-toolbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;display:flex}.week-toolbar h1{letter-spacing:-.035em;margin-top:3px;font-size:1.75rem;font-weight:600;line-height:1.6}.week-actions{align-items:center;gap:22px;display:flex}.week-navigation{align-items:center;gap:3px;display:flex}.week-navigation .plain-button{background:0 0;border:0}.segmented{border:1px solid var(--line);background:#eaf0f7;border-radius:11px;padding:4px;display:flex}.segmented button{color:var(--muted);white-space:nowrap;background:0 0;border-radius:7px;padding:9px 14px;font-size:.875rem}.segmented button.selected{color:#183961;background:#fff;box-shadow:0 2px 4px #1123400b}.workspace-bar{justify-content:space-between;align-items:center;gap:12px;min-height:54px;margin-bottom:12px;display:flex}.owner-area,.editing-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.owner-switch{color:#384966;align-items:center;gap:6px;font-size:.875rem;display:flex}.owner-switch select{color:inherit;font-size:inherit;background:0 0;border:0;max-width:220px;padding:7px 4px}.owner-name{font-size:.875rem;font-weight:500}.save-state{color:#6b7b8e;align-items:center;gap:4px;font-size:.75rem;display:flex}.save-state.failed{color:#b64d26}.paint-tools{border:1px solid var(--line);background:#fff;border-radius:8px;gap:2px;padding:3px;display:flex}.tool{color:#647187;white-space:nowrap;background:0 0;border-radius:5px;gap:4px;padding:6px 10px;font-size:.8125rem}.tool-busy.active{color:#fff;background:#39475b}.tool-free.active{color:#146b46;background:#deefe4}.tool-unknown.active{color:#3b5279;background:#edf1f7}.tool-restore.active{color:#2653a6;background:#eaf1ff}.edit-instruction{color:#64758b;margin:0 0 12px;font-size:.8rem}.editing-banner{color:#2653a6;background:#eaf1ff;border-radius:8px;justify-content:space-between;gap:10px;margin-bottom:10px;padding:10px 14px;font-size:.875rem;display:flex}.editing-banner span{font-size:.75rem}.content-layout{grid-template-columns:minmax(0,1fr) 264px;align-items:start;gap:20px;display:grid}.calendar-panel{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;overflow:hidden;box-shadow:0 3px 12px #25365704}.table-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c6d1e0 #f9fbfd;min-height:380px;max-height:calc(100vh - 332px);overflow:auto}.calendar-table{table-layout:fixed;border-spacing:0;border-collapse:separate;width:100%;min-width:880px;font-size:.8125rem}.calendar-table .time-col{width:62px}.calendar-table thead th{border-bottom:1px solid var(--line);z-index:3;background:#fff;height:44px;padding:5px 2px;font-weight:500;position:sticky;top:0}.calendar-table thead tr:first-child th:not(.time-corner){border-right:1px solid var(--line)}.calendar-table thead tr:nth-child(2) th{color:#8590a2;height:30px;padding:4px 0;font-size:.75rem;font-weight:400;top:44px}.calendar-table thead tr:nth-child(2) th:nth-child(2n){border-right:1px solid var(--line)}.calendar-table thead .time-corner{z-index:5;color:#8090a6;background:#f8fafd;font-size:.75rem;left:0}.calendar-table thead .today{color:var(--blue);background:#eef4ff}.date-label{color:#7c8ca2;margin-top:2px;font-size:.7rem;font-weight:400;display:block}.today .date-label{color:var(--blue)}.calendar-table thead .past-day{color:#8d98a8;background:#f8f9fb}.day-heading-button{width:100%;min-height:34px;color:inherit;font:inherit;background:0 0;border-radius:5px;padding:0;display:block}.day-heading-button:disabled{opacity:1;cursor:default}.is-editing .day-heading-button:not(:disabled){color:#2653a6;background:#eaf1ff}.is-editing .day-heading-button:not(:disabled):hover{background:#dbe8ff}.calendar-table thead tr:nth-child(2) .target-heading{color:#345481;font-weight:500}.calendar-table tbody:before{content:"";height:12px;display:table-row}.calendar-table td{border-bottom:1px solid var(--line);height:37px;padding:3px 2px;position:relative}.calendar-table tbody tr:first-child td:not(.common-start){border-top:1px solid var(--line)}.calendar-table td.day-end{border-right:1px solid var(--line);padding-right:5px}.calendar-table td:nth-child(2n){padding-left:5px}.hour-label{color:#8090a6;border-right:1px solid var(--line);z-index:2;text-align:center;background:#f8fafd;padding:0 5px;font-size:.7rem;font-weight:400;position:sticky;left:0}.hour-tick{font-variant-numeric:tabular-nums;pointer-events:none;width:100%;line-height:1;position:absolute;top:0;left:0;transform:translateY(-50%)}.calendar-table tfoot td{border:0;height:14px;padding:0}.cell{color:#97a5b6;cursor:default;-webkit-user-select:none;user-select:none;background:#f3f5f8;border-radius:4px;width:100%;height:30px;font-size:.8rem;transition:background .1s,color .1s;position:relative}.cell-free{color:#216849;background:#d8eddf}.cell-busy{color:#fff;background:#526177}.cell-unknown{color:#8b98a9;background:#f2f4f8}.cell.past{opacity:.58}.cell.paintable{cursor:crosshair;touch-action:none}.cell.paintable:hover,.cell.painting{outline-offset:-1px;outline:2px solid #2e6fec}.cell span{line-height:1}.exception-mark{background:#2768ed;border-radius:50%;width:4px;height:4px;position:absolute;top:3px;right:3px}.calendar-table td.common-left{box-shadow:inset 2px 0 #3e9d6d}.calendar-table td.common-right{box-shadow:inset -2px 0 #3e9d6d}.calendar-table td.common-start{border-top:2px solid #3e9d6d}.calendar-table td.common-end{border-bottom:2px solid #3e9d6d}.table-legend{border-top:1px solid var(--line);color:#67768b;flex-wrap:wrap;align-items:center;gap:14px;padding:13px 15px;font-size:.7rem;display:flex}.table-legend>span{align-items:center;gap:5px;display:flex}.table-legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.legend-free{background:#d8eddf}.legend-busy{background:#526177}.legend-common{border:2px solid #3e9d6d}.legend-exception{margin-left:auto;font-size:.7rem}.common-panel{border:1px solid var(--line);background:#fff;border-radius:13px;min-width:0;padding:21px 18px}.common-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-bottom:18px;display:flex}.common-title .eyebrow{font-size:.6875rem}.common-title h2{margin-top:5px;font-size:1rem;font-weight:600}.hours-count{letter-spacing:-.05em;color:#185c44;font-size:2rem;font-weight:600;line-height:1}.hours-count small{letter-spacing:0;text-align:right;margin-top:5px;font-size:.65rem;font-weight:400;display:block}.common-list{scrollbar-width:thin;min-height:180px;max-height:calc(100vh - 445px);overflow:auto}.common-day{padding-top:16px}.common-day h3{margin-bottom:7px;font-size:.8rem;font-weight:500}.common-day h3 span{color:#8a97aa;margin-left:8px;font-size:.7rem;font-weight:400}.range{background:#f0f7f3;border-radius:6px;justify-content:space-between;align-items:center;gap:3px;margin:5px 0;padding:8px 9px;display:flex}.range strong{white-space:nowrap;color:#31644d;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:500}.range span{color:#779585;white-space:nowrap;font-size:.65rem}.rule-note{border-top:1px solid var(--line);color:#8190a4;gap:8px;margin-top:20px;padding-top:16px;display:flex}.rule-note svg{flex-shrink:0;margin-top:2px}.rule-note p{font-size:.7rem;line-height:1.8}.empty-common{text-align:center;color:#98a5b8;padding:42px 2px}.empty-common svg{margin-bottom:12px}.empty-common p{color:#5e6f86;margin-bottom:6px;font-size:.875rem}.empty-common small{font-size:.75rem}.page-footer{color:#8996a8;justify-content:space-between;padding:16px 2px;font-size:.7rem;display:flex}.notice{border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;padding:11px 14px;font-size:.875rem;line-height:1.7;display:flex}.notice button,.pending-row button{color:var(--blue);background:0 0;font-size:.8rem;text-decoration:underline}.error{color:#ac3434;background:#fff0ef}.success{color:#267045;background:#eaf7ef}.warning{color:#966621;background:#fff6e5}.demo-notice{color:#86611e;background:#fff6df;border:1px solid #f0deaa;border-radius:8px;margin-bottom:16px;padding:9px 14px;font-size:.8125rem}.loading-panel{border:1px solid var(--line);color:#708099;text-align:center;background:#fff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:15px;padding:70px 25px;display:flex}.loading-panel h2{color:#33435b;font-size:1.1rem}.loading-panel p{font-size:.9rem}.preview-label{color:#9c702f;background:#fff8e8;border-radius:5px;margin-top:10px;padding:7px;font-size:.7rem}.pending-panel{background:#fff9ed;border:1px solid #efd7b4;border-radius:9px;margin:10px 0;padding:14px;font-size:.8125rem}.pending-panel strong{font-size:.875rem}.pending-row{flex-wrap:wrap;align-items:center;gap:10px;padding:7px 0;display:flex}.pending-row span{flex:1}.connection-note{margin-bottom:10px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell{background:radial-gradient(at 20% 0,#e2ebff,#0000 55%),#f7f9fc;flex-direction:column;justify-content:center;align-items:center;gap:30px;min-height:100dvh;padding:40px 20px;display:flex}.auth-card{border:1px solid var(--line);background:#fff;border-radius:18px;width:min(440px,100%);padding:36px;box-shadow:0 12px 50px #19385f08}.auth-card h1{letter-spacing:-.03em;white-space:pre-line;margin:10px 0;font-size:1.85rem;font-weight:600;line-height:1.6}.auth-card p{color:#718197;margin-bottom:24px;font-size:.9rem;line-height:1.9}.auth-card form{flex-direction:column;gap:18px;display:flex}.auth-card form .primary{width:100%;margin-top:4px}.auth-card>small{text-align:center;margin-top:24px;font-size:.75rem;display:block}.auth-card>.text-button{margin:14px auto 0;display:flex}.auth-card>.button{width:100%}.auth-footnote{color:#8c99ad;font-size:.75rem}form label{color:#4a5b72;flex-direction:column;gap:8px;font-size:.875rem;display:flex}form input{color:#273b58;background:#fff;border:1px solid #dce3ed;border-radius:8px;width:100%;height:44px;padding:9px 12px}form input::placeholder{color:#9aa5b5;font-size:.85rem}.modal{border:1px solid var(--line);color:#24354f;border-radius:16px;width:min(440px,100vw - 28px);padding:25px;box-shadow:0 24px 80px #15273e30}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#18263e55}.modal-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-heading h2{font-size:1.125rem}.install-help p{margin:16px 0;font-size:.9rem;line-height:1.9}@media (width>=1500px){.calendar-table{min-width:980px}.calendar-table td{height:42px}.cell{height:34px}.content-layout{grid-template-columns:minmax(0,1fr) 290px}}@media (width<=1100px){.app-shell{padding:0 20px 20px}.content-layout{grid-template-columns:minmax(0,1fr) 230px;gap:14px}.week-actions{gap:10px}.common-panel{padding:18px 13px}.workspace-bar{align-items:flex-start}.editing-tools{justify-content:flex-end}.owner-area{gap:5px}.legend-exception{margin-left:0}}@media (width<=800px){.app-shell{padding:0 14px 20px}.app-header{height:75px;margin-bottom:20px}.brand strong{font-size:1rem}.brand-mark{border-radius:10px;width:37px;height:37px}.header-right{gap:2px}.timezone{display:none}.week-toolbar{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.week-toolbar h1{font-size:1.45rem}.week-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%}.segmented button{padding:8px 10px;font-size:.8rem}.workspace-bar{flex-direction:column;gap:10px}.owner-area{justify-content:space-between;width:100%}.editing-tools{justify-content:flex-start;gap:8px;width:100%}.paint-tools{flex:1}.tool{flex:1;padding:7px}.tool svg{display:none}.content-layout{flex-direction:column;gap:16px;display:flex}.calendar-panel,.common-panel{width:100%}.table-scroll{min-height:310px;max-height:58vh}.calendar-table{min-width:900px}.calendar-table td{height:44px}.cell{height:37px}.calendar-table .time-col{width:58px}.common-panel{padding:18px}.common-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;max-height:none;display:grid}.common-title{padding-bottom:12px}.rule-note{margin-top:12px;padding-top:12px}.page-footer{flex-direction:column;gap:6px;font-size:.7rem}.table-legend{gap:10px;padding:11px;font-size:.7rem}.table-legend .legend-exception{width:100%}.auth-card{padding:28px}.editing-banner{font-size:.8rem}.editing-banner span{display:none}.edit-instruction{font-size:.75rem}.modal{padding:22px}.common-title h2{font-size:1.05rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
