:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--ink-950:#11131a;--ink-800:#272a35;--ink-700:#3d4050;--ink-600:#5a5e70;--ink-500:#777b8d;--ink-400:#989cac;--line-300:#d7dae4;--line-200:#e5e7ee;--line-100:#eef0f5;--canvas:#f4f5f8;--paper:#fff;--paper-soft:#fafaff;--brand-950:#242062;--brand-800:#3830a3;--brand-700:#493fd0;--brand-600:#5c50e6;--brand-500:#6d62f4;--brand-100:#e5e2ff;--brand-50:#f3f1ff;--cyan-600:#0b9bb4;--cyan-100:#cff6fb;--cyan-50:#ecfcfe;--blue-700:#2656cf;--blue-600:#3568eb;--blue-50:#edf3ff;--mint:#bfffe7;--danger-700:#c43252;--danger-100:#ffe4ea;--danger-50:#fff4f6;--warning-700:#9a5b12;--warning-100:#ffedc2;--warning-50:#fffaf0;--success-700:#147253;--success-100:#d8f8e9;--success-50:#f0fbf6;--slate-950:var(--ink-950);--slate-800:var(--ink-800);--slate-700:var(--ink-700);--slate-600:var(--ink-600);--slate-500:var(--ink-500);--slate-300:var(--line-300);--slate-200:var(--line-200);--slate-100:var(--line-100);--slate-50:var(--canvas);--surface:var(--paper);--shadow-card:0 1px 2px #11131a08, 0 18px 50px #2225320f;font-family:Inter,Noto Sans TC,Microsoft JhengHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--canvas)}body{background:linear-gradient(#44496009 1px, transparent 1px), linear-gradient(90deg, #44496009 1px, transparent 1px), var(--canvas);min-width:320px;min-height:100vh;color:var(--ink-800);-webkit-font-smoothing:antialiased;background-size:32px 32px;margin:0;font-size:16px;line-height:1.55}button,input,select{font:inherit}button{border:1px solid var(--line-300);background:var(--paper);min-height:42px;color:var(--ink-700);cursor:pointer;border-radius:10px;padding:.56rem .94rem;font-weight:700;transition:border-color .18s,background-color .18s,color .18s,box-shadow .18s,transform .18s}button:hover:not(:disabled){color:var(--brand-700);border-color:#b9b3f7;box-shadow:0 5px 16px #493fd01a}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.46;cursor:not-allowed}input,select{border:1px solid var(--line-300);background:var(--paper);width:100%;min-height:44px;color:var(--ink-800);border-radius:9px;padding:.58rem .76rem;transition:border-color .18s,box-shadow .18s,background-color .18s}input::placeholder{color:var(--ink-400)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #5c50e633}input:focus,select:focus{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 4px #5c50e61a}input[type=checkbox]{accent-color:var(--brand-600)}h1,h2,h3,p{overflow-wrap:break-word}::selection{background:var(--brand-100);color:var(--brand-950)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.toolbox{grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.studio-sidebar{z-index:100;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe8;border-right:1px solid #d7dae4db;flex-direction:column;width:250px;padding:1.35rem 1rem 1rem;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:12px 0 40px #20243408}.studio-brand{align-items:center;gap:.72rem;min-height:48px;padding:0 .45rem;display:flex}.brand-mark{background:var(--ink-950);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 18px #11131a2e}.brand-mark:before,.brand-mark:after,.brand-mark i{content:"";border-radius:50%;position:absolute}.brand-mark:before{background:var(--mint);width:18px;height:18px;transform:translate(-5px,5px)}.brand-mark:after{background:var(--brand-500);width:14px;height:14px;transform:translate(6px,-6px)}.brand-mark i{background:#fff;width:8px;height:8px;transform:translate(7px,8px)}.brand-copy{line-height:1.15;display:grid}.brand-copy strong{color:var(--ink-950);letter-spacing:-.025em;font-size:.91rem}.brand-copy small{color:var(--ink-400);letter-spacing:.09em;text-transform:uppercase;margin-top:.25rem;font-size:.62rem;font-weight:750}.toolbox-nav{margin-top:2.4rem}.nav-label{color:var(--ink-400);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .72rem;padding:0 .6rem;font-size:.65rem;font-weight:800}.toolbox-tabs{gap:.45rem;display:grid}.toolbox-tabs .tab{width:100%;min-height:66px;color:var(--ink-600);text-align:left;box-shadow:none;background:0 0;border-color:#0000;grid-template-columns:33px minmax(0,1fr) 18px;align-items:center;gap:.68rem;padding:.7rem .72rem;display:grid;position:relative;overflow:hidden}.toolbox-tabs .tab:before{background:var(--brand-600);content:"";opacity:0;border-radius:0 99px 99px 0;width:3px;transition:opacity .18s,transform .18s;position:absolute;inset:9px auto 9px 0;transform:translate(-4px)}.toolbox-tabs .tab:hover{background:var(--line-100);color:var(--ink-950);box-shadow:none;border-color:#0000}.toolbox-tabs .tab.active{border-color:var(--line-200);background:var(--paper);color:var(--ink-950);box-shadow:0 9px 24px #23273a14}.toolbox-tabs .tab.active:before{opacity:1;transform:translate(0)}.tab-index{border:1px solid var(--line-200);background:var(--paper);width:33px;height:33px;color:var(--ink-500);border-radius:9px;place-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.66rem;font-weight:800;display:grid}.tab.active .tab-index{border-color:var(--brand-100);background:var(--brand-50);color:var(--brand-700)}.tab-copy{min-width:0;display:grid}.tab-copy strong{color:inherit;letter-spacing:-.01em;font-size:.84rem;font-weight:800}.tab-copy small{color:var(--ink-400);text-overflow:ellipsis;white-space:nowrap;margin-top:.18rem;font-size:.64rem;font-weight:650;overflow:hidden}.tab-arrow{color:var(--ink-400);opacity:0;font-size:.8rem;transition:opacity .18s,transform .18s;transform:translate(-3px,3px)}.tab:hover .tab-arrow,.tab.active .tab-arrow{opacity:1;transform:translate(0)}.privacy-note{background:linear-gradient(145deg,#f8fffc,#effbf6);border:1px solid #d9f2e8;border-radius:13px;grid-template-columns:26px 1fr;gap:.65rem;margin-top:auto;padding:.85rem;display:grid}.privacy-icon{background:var(--mint);color:#075c43;border-radius:8px;place-items:center;width:26px;height:26px;font-size:.83rem;font-weight:900;display:grid}.privacy-note strong{color:#175f4c;letter-spacing:.02em;text-transform:uppercase;font-size:.71rem}.privacy-note p{color:#508070;margin:.24rem 0 0;font-size:.67rem;line-height:1.45}.studio-workspace{grid-column:2;min-width:0}.workspace-bar{z-index:90;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f4f5f8de;border-bottom:1px solid #d7dae4c2;justify-content:space-between;align-items:center;min-height:54px;padding:0 clamp(1rem,3vw,2.4rem);display:flex;position:sticky;top:0}.workspace-path{color:var(--ink-500);letter-spacing:.08em;align-items:center;gap:.58rem;font-size:.67rem;font-weight:750;display:flex}.workspace-path i{color:var(--line-300);font-style:normal}.workspace-path strong{color:var(--ink-800);letter-spacing:.02em}.workspace-status{color:var(--success-700);align-items:center;gap:.42rem;font-size:.7rem;font-weight:800;display:inline-flex}.workspace-status i{background:#30c994;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #30c99421}.toolbox-main{min-width:0}.loading{color:var(--ink-500);justify-content:center;align-items:center;gap:.55rem;padding:5rem 1rem;font-size:.83rem;font-weight:700;display:flex}.loading span{background:var(--brand-500);border-radius:50%;width:7px;height:7px;animation:1s infinite alternate loading-pulse}@keyframes loading-pulse{to{opacity:.25;transform:scale(.72)}}@media (width<=860px){.toolbox{padding-bottom:76px;display:block}.studio-sidebar{z-index:110;border-top:1px solid var(--line-200);border-right:0;width:auto;height:76px;padding:.55rem .75rem;inset:auto 0 0;box-shadow:0 -10px 30px #20243414}.studio-brand,.nav-label,.privacy-note{display:none}.toolbox-nav{margin:0}.toolbox-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbox-tabs .tab{grid-template-columns:30px minmax(0,1fr);min-height:58px;padding:.45rem .6rem}.toolbox-tabs .tab:before{width:auto;height:3px;inset:auto 18px -1px}.tab-index{width:30px;height:30px}.tab-arrow{display:none}.studio-workspace{min-width:0}}@media (width<=470px){.workspace-bar{min-height:48px}.workspace-path span,.workspace-path i{display:none}.workspace-status{font-size:.64rem}.toolbox-tabs .tab{gap:.5rem}.tab-copy small{font-size:.59rem}}.app-shell{width:min(1280px,100%);margin:0 auto;padding:clamp(2rem,4vw,4rem) clamp(1rem,3vw,2.4rem) 5rem}.app-header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem;margin-bottom:2rem;display:grid}.header-copy{max-width:720px}.page-kicker{color:var(--ink-400);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.6rem;margin:0 0 .8rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.66rem;font-weight:750;display:flex}.page-kicker span{background:var(--brand-100);color:var(--brand-800);border-radius:5px;padding:.2rem .45rem;display:inline-flex}.app-header h1{max-width:700px;color:var(--ink-950);letter-spacing:-.065em;margin:0;font-size:clamp(2rem,4.2vw,3.4rem);font-weight:850;line-height:1.09}.page-intro{max-width:650px;color:var(--ink-500);margin:1rem 0 0;font-size:clamp(.91rem,1.5vw,1rem);line-height:1.75}.workflow-steps{align-items:center;gap:0;margin:0 0 .25rem;padding:0;list-style:none;display:flex}.workflow-steps li{min-width:96px;color:var(--ink-400);white-space:nowrap;justify-items:center;gap:.38rem;font-size:.65rem;font-weight:750;display:grid;position:relative}.workflow-steps li:not(:last-child):after{background:var(--line-300);content:"";width:calc(100% - 36px);height:1px;position:absolute;top:14px;left:calc(50% + 18px)}.workflow-steps span{z-index:1;border:1px solid var(--line-300);background:var(--canvas);border-radius:50%;place-items:center;width:29px;height:29px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.61rem;display:grid}.workflow-steps li.active{color:var(--brand-700)}.workflow-steps li.active span{border-color:var(--brand-600);background:var(--brand-600);color:#fff;box-shadow:0 0 0 5px var(--brand-100)}.workflow-steps li.done{color:var(--success-700)}.workflow-steps li.done span{border-color:var(--success-100);background:var(--success-100);color:var(--success-700)}.card{border:1px solid var(--line-200);background:var(--paper);box-shadow:var(--shadow-card);border-radius:16px;padding:1.4rem}.alert{background:var(--danger-50);color:var(--danger-700);border:1px solid #ffc9d5;border-radius:11px;margin:0 0 1rem;padding:.88rem 1rem;font-size:.88rem;line-height:1.55}.primary-button,.sync-actions>button:first-child{border-color:var(--ink-950);background:var(--ink-950);color:#fff;border-radius:10px;justify-content:center;align-items:center;gap:.8rem;min-height:48px;font-weight:800;display:inline-flex;box-shadow:0 10px 24px #11131a2e}.primary-button:hover,.sync-actions>button:first-child:hover:not(:disabled){border-color:var(--brand-700);background:var(--brand-700);color:#fff;transform:translateY(-1px);box-shadow:0 12px 25px #493fd038}.secondary-button{border-color:var(--line-300);min-height:40px;color:var(--ink-600)}.upload-hero input,.replace-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.upload-hero{border:1px solid var(--line-200);background:var(--paper);text-align:left;grid-template-columns:minmax(260px,.8fr) minmax(320px,1fr);align-items:stretch;min-height:420px;margin-top:.25rem;padding:0;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid;position:relative;overflow:hidden}.upload-hero:hover,.upload-hero.dragging{border-color:#c5c0fb;transform:translateY(-2px);box-shadow:0 24px 60px #493fd01c}.upload-visual{background:radial-gradient(circle at 30% 30%,#fffc 0 4%,#0000 4.4%),linear-gradient(135deg,#dcd8ff 0%,#bdb7ff 52%,#8f84fa 100%);border-right:1px solid #d9d5ff;place-items:center;min-height:420px;display:grid;position:relative;overflow:hidden}.upload-visual:before,.upload-visual:after{content:"";position:absolute}.upload-visual:before{background-color:#0000;background-image:linear-gradient(#2d267e14 1px,#0000 1px),linear-gradient(90deg,#2d267e14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 92%);mask-image:linear-gradient(#000,#0000 92%)}.upload-visual:after{border:1px solid #ffffff8c;border-radius:50%;width:250px;height:250px;bottom:-90px;right:-80px;box-shadow:0 0 0 34px #ffffff12,0 0 0 68px #ffffff0f}.visual-grid-index{color:#231d6a91;letter-spacing:.15em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem;font-weight:800;position:absolute;top:1.25rem;left:1.35rem}.sheet-card{background:#ffffffe6;border:1px solid #ffffffd9;border-radius:14px;grid-template-columns:repeat(4,1fr);gap:7px;width:166px;height:202px;padding:42px 18px 18px;display:grid;position:absolute;transform:rotate(4deg)translate(14px,-3px);box-shadow:0 28px 48px #261e7738}.sheet-card i{background:#e8e6f7;border-radius:4px;height:20px}.sheet-card i:nth-child(3n+1){background:var(--mint)}.sheet-card-back{opacity:.44;transform:rotate(-8deg)translate(-32px,12px)}.sheet-card-back i{grid-column:1/-1}.sheet-corner{color:var(--brand-700);letter-spacing:.09em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62rem;font-weight:900;position:absolute;top:16px;left:18px}.visual-orbit{z-index:2;background:var(--mint);color:#075c43;border:1px solid #fffc;border-radius:50%;place-items:center;width:36px;height:36px;font-size:1.1rem;font-weight:400;display:grid;position:absolute;bottom:18%;right:18%;box-shadow:0 8px 20px #2c228329}.upload-content{flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:clamp(2rem,5vw,4.25rem);display:flex}.section-number{color:var(--brand-600);letter-spacing:.11em;margin-bottom:.8rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem;font-weight:850}.upload-content h2{max-width:400px;color:var(--ink-950);letter-spacing:-.05em;margin:0;font-size:clamp(1.65rem,3.2vw,2.3rem);line-height:1.16}.upload-content>p{max-width:500px;color:var(--ink-500);margin:1rem 0 0;font-size:.91rem;line-height:1.75}.upload-meta{flex-wrap:wrap;gap:.45rem;margin:1.1rem 0 1.35rem;display:flex}.upload-meta span{border:1px solid var(--line-200);background:var(--canvas);color:var(--ink-500);letter-spacing:.06em;border-radius:6px;padding:.28rem .5rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.58rem;font-weight:750}.upload-button{cursor:pointer;justify-content:space-between;min-width:190px;padding-inline:1.05rem}.toolbar{background:linear-gradient(110deg, #fff 0%, #fff 70%, var(--brand-50) 100%);grid-template-columns:minmax(270px,1.2fr) minmax(170px,.65fr) minmax(260px,.9fr);gap:1.25rem;margin:1.25rem 0;display:grid}.toolbar.dragging{border-color:var(--brand-500);outline:2px dashed var(--brand-500);outline-offset:-7px}.field{color:var(--ink-600);align-content:start;gap:.42rem;font-size:.77rem;font-weight:750;display:grid}.file-summary{align-items:center;gap:.75rem;min-width:0;display:flex}.file-icon{background:var(--brand-50);width:44px;height:44px;color:var(--brand-700);border:1px solid #cfcaff;border-radius:11px;flex:none;place-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.6rem;font-weight:900;display:grid}.file-summary>div{min-width:0}.file-summary strong{color:var(--ink-800);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;display:block;overflow:hidden}.file-summary small{color:var(--ink-400);margin-top:.15rem;font-size:.68rem;display:block}.replace-button{white-space:nowrap;margin-left:auto}.month-fields{grid-template-columns:1fr 1fr;align-content:start;gap:.65rem;display:grid}.date-status,.inline-warning{grid-column:1/-1;margin:-.05rem 0 0;font-size:.72rem;font-weight:650}.date-status.success{color:var(--success-700)}.date-status.warning,.inline-warning{color:var(--warning-700)}.workspace{grid-template-columns:minmax(280px,350px) minmax(0,1fr);align-items:stretch;gap:1.25rem;display:grid}.workspace>.card{min-height:430px}.panel-heading{margin-bottom:1rem}.panel-heading h2,.person-panel h2,.preview-panel h2{color:var(--ink-950);letter-spacing:-.025em;margin:0 0 .3rem;font-size:1rem}.panel-heading p{color:var(--ink-500);margin:0;font-size:.76rem;line-height:1.55}.person-search{background:var(--canvas);min-height:42px;margin-top:.2rem}.bulk-actions{gap:.5rem;margin-top:.7rem;display:flex}.bulk-actions button{border-radius:8px;min-height:34px;padding:.3rem .62rem;font-size:.74rem}.person-list{border:1px solid var(--line-200);background:var(--canvas);border-radius:11px;max-height:300px;margin:.85rem 0 0;padding:.35rem;list-style:none;overflow:auto}.person-list li{margin:0}.person-list label{cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;width:100%;min-height:43px;padding:.38rem .48rem;display:flex}.person-list li.active{background:var(--paper);box-shadow:0 4px 14px #2225320f}.person-list label.selected{background:var(--brand-50)}.person-list label:hover{background:var(--paper)}.person-list input{width:16px;min-height:16px}.link{min-height:auto;color:inherit;box-shadow:none;background:0 0;border:0;padding:0}.link:hover{box-shadow:none;background:0 0}.person-list .link{text-align:left;flex:1;align-items:center;display:flex}.person-badges{gap:.28rem;margin-left:auto;display:inline-flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:.16rem .42rem;font-size:.62rem;font-weight:800;display:inline-flex}.badge.work{background:var(--blue-50);color:var(--blue-700)}.badge.off{background:var(--line-100);color:var(--ink-500)}.badge.warn{background:var(--warning-100);color:var(--warning-700)}.placeholder{color:var(--ink-400);margin:1.4rem 0;font-size:.84rem}.preview-wrap{min-width:0}.preview-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem;display:flex}.preview-header h3{color:var(--brand-800);margin:0 0 .15rem;font-size:1rem}.preview-meta{color:var(--ink-400);margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem}.view-toggle{border:1px solid var(--line-200);background:var(--canvas);border-radius:9px;padding:3px;display:inline-flex;overflow:hidden}.view-toggle button{min-height:30px;color:var(--ink-500);box-shadow:none;background:0 0;border:0;border-radius:6px;padding:0 .65rem;font-size:.7rem}.view-toggle button.active{background:var(--paper);color:var(--brand-700);box-shadow:0 2px 8px #22253214}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.32rem;display:grid}.calendar-head{color:var(--ink-400);text-align:center;padding:.35rem 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62rem;font-weight:800}.calendar-cell{background:var(--brand-50);border:1px solid #d8d4ff;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:.12rem;min-height:56px;padding:.3rem .2rem;display:flex}.calendar-cell.empty{visibility:hidden}.calendar-cell .day-num{color:var(--ink-400);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.61rem;line-height:1}.calendar-cell .shift-label{color:var(--brand-800);font-size:.75rem;font-weight:850}.calendar-cell.off{border-color:var(--line-200);background:var(--canvas)}.calendar-cell.off .shift-label{color:var(--ink-400)}.calendar-legend{color:var(--ink-500);gap:1rem;margin:.75rem 0 0;font-size:.7rem;display:flex}.calendar-legend span{align-items:center;gap:.32rem;display:inline-flex}.calendar-legend .dot{border-radius:50%;width:8px;height:8px}.calendar-legend .dot.work{background:var(--brand-600)}.calendar-legend .dot.off{border:1px solid var(--line-300);background:var(--line-100)}.preview-table{border-collapse:separate;border-spacing:0;border:1px solid var(--line-200);border-radius:10px;width:100%;font-size:.78rem;overflow:hidden}.preview-table th{background:var(--canvas);color:var(--ink-500);text-align:left;padding:.62rem .7rem;font-size:.69rem;font-weight:800}.preview-table td{border-top:1px solid var(--line-200);color:var(--ink-600);padding:.57rem .7rem}.preview-table td:first-child{color:var(--ink-800);font-weight:750}.preview-table tr.anomaly td{background:var(--danger-50);color:var(--danger-700)}.google-panel{margin-top:1.25rem}.google-panel>h2{color:var(--ink-950);letter-spacing:-.02em;margin:0 0 1rem;font-size:1rem}.google-panel .panel-columns{grid-template-columns:minmax(250px,350px) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.google-panel .panel-left{border-right:1px solid var(--line-200);padding-right:1.25rem}.google-panel .panel-left>*{margin-top:.78rem}.google-panel .panel-left>:first-child{margin-top:0}.connection-status{color:var(--ink-600);align-items:center;gap:.72rem;font-size:.8rem;display:flex}.connection-status .badge{background:var(--success-100);color:var(--success-700)}.color-field{flex-wrap:wrap;align-items:center;gap:.48rem;display:flex}.color-label,.color-name{color:var(--ink-500);font-size:.74rem}.color-picker{flex-wrap:wrap;gap:.28rem;display:flex}.color-swatch-btn{width:25px;height:25px;min-height:25px;box-shadow:none;border:2px solid #0000;border-radius:50%;place-items:center;padding:0;display:inline-grid}.color-swatch-btn:hover:not(:disabled){transform:scale(1.1)}.color-swatch-btn.selected{border-color:var(--ink-950);box-shadow:inset 0 0 0 2px #fff}.color-swatch-btn .check{color:#fff;text-shadow:0 0 3px #0009;font-size:.66rem}.sync-actions{flex-wrap:wrap;gap:.5rem;display:flex}.sync-actions button{font-size:.76rem}.progress-bar{background:var(--line-100);border-radius:999px;height:22px;position:relative;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--brand-700), #8177ff);height:100%;transition:width .2s}.progress-bar span{color:var(--ink-700);place-items:center;font-size:.66rem;font-weight:800;display:grid;position:absolute;inset:0}.subtle-danger:not(:hover){color:var(--danger-700);border-color:#ffd4dd}.sync-summary{border:1px solid #0000;border-radius:11px;margin-top:0;padding:.95rem;font-size:.81rem}.sync-summary.success{background:var(--success-50);color:#176148;border-color:#bcebd5}.sync-summary.partial{background:var(--warning-50);color:#80501a;border-color:#f1d99c}.sync-summary.aborted{border-color:var(--line-200);background:var(--canvas);color:var(--ink-600)}.sync-summary .summary-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.sync-summary p{margin:.35rem 0 .25rem;line-height:1.5}.sync-summary small{opacity:.72}.sync-summary .dismiss{color:inherit;font-size:.75rem}.log-details{margin-top:.75rem}.log-details>summary{border:1px solid var(--line-200);background:var(--canvas);color:var(--ink-600);cursor:pointer;border-radius:9px;padding:.62rem .72rem;font-size:.75rem;font-weight:750}.log-details[open]>summary{border-bottom-right-radius:0;border-bottom-left-radius:0}.log-panel{background:var(--ink-950);color:#d8dbea;white-space:pre-wrap;word-break:break-all;border-radius:0 0 9px 9px;max-height:240px;margin:0;padding:.85rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.69rem;line-height:1.6;overflow-y:auto}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#11131a8c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:var(--paper);border:1px solid #ffffff40;border-radius:18px;width:min(560px,100%);max-height:min(88vh,720px);padding:1.5rem;overflow:auto;box-shadow:0 28px 80px #11131a4d}.modal-card h2{color:var(--danger-700);margin:0 0 .6rem;font-size:1.18rem}.modal-card>p{color:var(--ink-600);margin:0 0 1rem;font-size:.86rem;line-height:1.65}.modal-summary{background:var(--canvas);border-radius:11px;grid-template-columns:auto 1fr;align-items:center;gap:.35rem .75rem;margin-bottom:.9rem;padding:.9rem;display:grid}.modal-summary span{color:var(--ink-500);font-size:.78rem}.modal-names summary{color:var(--brand-700);cursor:pointer;font-size:.82rem;font-weight:750}.modal-names p{color:var(--ink-600);word-break:break-word;font-size:.82rem;line-height:1.7}.modal-check{background:var(--danger-50);color:var(--danger-700);border:1px solid #ffc9d5;border-radius:10px;align-items:flex-start;gap:.55rem;margin:1rem 0 1.15rem;padding:.85rem;font-size:.8rem;font-weight:700;line-height:1.5;display:flex}.modal-check input{width:18px;height:18px;min-height:18px;margin-top:.1rem}.modal-actions{justify-content:flex-end;gap:.65rem;display:flex}.modal-actions button{min-width:96px;min-height:44px}.modal-actions .danger{border-color:var(--danger-700);background:var(--danger-700);color:#fff}footer{color:var(--ink-400);margin-top:1rem;font-size:.72rem}@media (width<=1080px){.app-header{grid-template-columns:1fr;align-items:start}.workflow-steps{justify-self:start}.upload-hero{grid-template-columns:minmax(230px,.7fr) 1fr}.toolbar{grid-template-columns:1fr 1fr}.file-summary{grid-column:1/-1}}@media (width<=820px){.app-shell{padding-top:2rem;padding-bottom:2.5rem}.app-header{gap:1.35rem}.workflow-steps li{min-width:88px}.upload-hero{grid-template-columns:1fr}.upload-visual{border-bottom:1px solid #d9d5ff;border-right:0;min-height:235px}.sheet-card{width:125px;height:150px;padding:36px 14px 14px}.upload-content{padding:2rem}.toolbar{grid-template-columns:1fr}.file-summary{grid-column:auto}.workspace{grid-template-columns:1fr}.workspace>.card{min-height:auto}.google-panel .panel-columns{grid-template-columns:1fr}.google-panel .panel-left{border-right:0;border-bottom:1px solid var(--line-200);padding-bottom:1.2rem;padding-right:0}}@media (width<=540px){.app-header h1{font-size:2rem}.workflow-steps{width:100%}.workflow-steps li{flex:1;min-width:0;font-size:.57rem}.workflow-steps li:not(:last-child):after{width:calc(100% - 32px)}.upload-visual{min-height:205px}.upload-content{padding:1.5rem}.upload-content h2{font-size:1.65rem}.card{border-radius:14px;padding:1rem}.file-summary{flex-wrap:wrap}.replace-button{margin-left:52px}.calendar-grid{gap:.2rem}.calendar-cell{min-height:47px}.calendar-cell .shift-label{font-size:.68rem}.person-badges{gap:.18rem}.badge{padding:.14rem .3rem;font-size:.58rem}.preview-header{align-items:center}}
