:root{--color-bg:#f7f9fc;--color-surface:#ffffff;--color-surface-soft:#f2f6fa;--color-border:#dde5ef;--color-border-soft:#eaf0f6;--color-text:#1f2937;--color-text-muted:#6b7280;--color-text-soft:#9ca3af;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-soft:#dbeafe;--color-success:#16a34a;--color-warning:#f59e0b;--color-danger:#dc2626;--color-info:#0891b2;--radius:8px;--shadow-modal:0 12px 30px rgba(15,23,42,0.12);--overlay:rgba(15,23,42,0.35)}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--color-bg);color:var(--color-text);font-family:Krub,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;font-size:14px;line-height:1.5}a{color:var(--color-primary);text-decoration:none}h1,h2,h3{font-weight:600;margin:0 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-weight:500;font-size:14px;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{background:var(--color-surface-soft)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}.btn-success{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-success:hover{background:#15803d;border-color:#15803d;color:#fff}.input,.select,.textarea{width:100%;height:40px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);font-family:inherit;font-size:14px;color:var(--color-text)}.textarea{height:auto;min-height:90px;padding:10px 12px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.card{background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius);padding:16px}.wrap-anywhere{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.clamp-5{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.comment-more{margin-top:4px;border:none;background:none;cursor:pointer;font-size:12px;color:var(--color-primary);display:inline-flex;align-items:center;gap:4px;padding:0}.table{width:100%;border-collapse:collapse;font-size:13px}.table,.table th{background:var(--color-surface)}.table th{text-align:left;font-weight:600;color:var(--color-text-muted);padding:10px 12px;border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0}.table td{padding:10px 12px;border-bottom:1px solid var(--color-border-soft)}.table tbody tr:hover{background:#f8fbff;cursor:pointer}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-modal);width:min(1280px,calc(100vw - 32px));height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}.modal-wide{width:min(1500px,calc(100vw - 32px))}.modal-header{position:-webkit-sticky;position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.modal-body{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:20px;gap:20px;padding:20px;overflow:auto;flex:1 1}@media (max-width:900px){.modal-body{grid-template-columns:1fr}.modal{height:100vh;border-radius:0}.modal,.modal-wide{width:100vw}}.modal-body-3col{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.1fr);grid-gap:16px;gap:16px;flex:1 1;min-height:0;overflow:hidden;padding:20px}.modal-col{min-height:0;overflow-y:auto;padding-right:6px}@media (max-width:1000px){.modal-body-3col{display:flex;flex-direction:column;gap:16px;overflow-y:auto;overflow-x:hidden}.modal-body-3col .modal-col{flex:0 0 auto;width:100%;min-height:auto;max-height:none;overflow:visible;padding-right:0}.modal-body-3col .modal-col[style*=border-left]{border-left:none!important;padding-left:0!important;border-top:1px solid var(--color-border-soft);padding-top:16px}.modal,.modal-wide{width:100vw;height:100vh;border-radius:0}.modal-overlay{padding:0}.modal-tabs{padding:0 14px}.modal-timeline-wrap{padding:16px 14px}.modal-header{flex-direction:column;align-items:stretch}.modal-header-actions{width:100%;justify-content:flex-end}}@media (max-width:560px){.modal-body-3col{padding:14px;gap:12px}.modal-header{padding:12px 14px}.modal-footer-center{padding:12px 14px;flex-wrap:wrap}.modal-body-3col button.btn{flex:0 1 auto}.modal-tab{padding:10px 12px;font-size:13px}}.modal-footer-center{display:flex;justify-content:center;gap:8px;padding:14px 20px;border-top:1px solid var(--color-border)}.modal-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap}.modal-tab{position:relative;background:none;padding:12px 16px;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-text-muted);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.modal-tab:hover{color:var(--color-text)}.modal-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.collapsible{border:1px solid var(--color-border-soft);border-radius:var(--radius);margin-bottom:8px;overflow:hidden;background:var(--color-surface)}.collapsible-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:var(--color-surface-soft);color:var(--color-text);font-family:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;transition:background .15s}.collapsible-head:hover{background:var(--color-border-soft)}.collapsible-body{padding:10px 12px;border-top:1px solid var(--color-border-soft)}.modal-timeline-wrap{flex:1 1;min-height:0;overflow:auto;padding:20px}.timeline{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding-left:8px}.timeline,.timeline-item{position:relative;display:flex}.timeline-item{gap:14px;align-items:flex-start}.timeline-item:before{content:"";position:absolute;left:5px;top:16px;bottom:-20px;width:2px;background:var(--color-border)}.timeline-item:last-child:before{display:none}.timeline-dot{flex:0 0 12px;width:12px;height:12px;margin-top:3px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-primary);z-index:1}.timeline-content{flex:1 1;min-width:0;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius);padding:10px 12px}.timeline-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-arrow{color:var(--color-text-muted);font-weight:600}.timeline-note{margin-top:6px;white-space:pre-wrap}.paste-box{position:relative;width:100%;min-height:70px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:14px;cursor:text;transition:border-color .15s,box-shadow .15s}.paste-box:focus,.paste-box:focus-within{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.paste-box-placeholder{color:var(--color-text-soft);-webkit-user-select:none;-moz-user-select:none;user-select:none}.paste-box-clip{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.paste-box-clip:hover{background:var(--color-surface-soft);color:var(--color-text)}.paste-box.dragover{border-color:var(--color-primary);border-style:dashed;background:var(--color-primary-soft);box-shadow:0 0 0 3px var(--color-primary-soft)}.img-viewer-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.8);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.img-viewer-img{max-width:90vw;max-height:90vh;object-fit:contain;transform-origin:center center;will-change:transform;box-shadow:0 10px 40px rgba(0,0,0,.5)}.img-viewer-toolbar{position:fixed;top:16px;right:16px;z-index:201;display:flex;gap:8px;padding:6px;border-radius:var(--radius);background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.img-viewer-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background .15s,border-color .15s}.img-viewer-btn:hover{background:var(--color-primary);border-color:var(--color-primary)}.file-preview-overlay{position:fixed;inset:0;z-index:210;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6)}.file-preview-box{width:92vw;height:90vh;background:var(--color-surface,#fff);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px rgba(0,0,0,.5)}.file-preview-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--color-border);background:rgba(0,0,0,.45);color:#fff}.file-preview-body{flex:1 1;overflow:auto;min-height:0}.file-preview-pre{margin:0;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;white-space:pre-wrap;word-break:break-word;overflow:auto;height:100%}.muted{color:var(--color-text-muted)}.app-shell{display:flex;height:100vh;min-height:100vh;align-items:stretch;overflow:hidden;position:relative}.app-content{flex:1 1;min-width:0;min-height:0;display:flex;flex-direction:column}.app-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:12px 16px;display:flex;align-items:center;gap:12px;min-height:56px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.app-main{flex:1 1;min-width:0;min-height:0;overflow:auto;display:flex;flex-direction:column}.app-main>.list-fill{flex:1 1;min-height:0}.sidebar{width:220px;flex:0 0 220px;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px;padding:12px 10px;position:-webkit-sticky;position:sticky;top:0;align-self:flex-start;height:100vh;transition:width .2s ease,flex-basis .2s ease;overflow:hidden}.sidebar.collapsed{width:64px;flex-basis:64px}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:6px 10px 12px;font-weight:700;font-size:18px;color:var(--color-text);border-bottom:1px solid var(--color-border-soft);margin-bottom:4px}.sidebar.collapsed .sidebar-logo{justify-content:center;padding:6px 0 12px}.sidebar-logo-mark{font-size:22px;line-height:1}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1 1}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);color:var(--color-text-muted);font-weight:500;white-space:nowrap;transition:background .15s,color .15s}.nav-item:hover{background:var(--color-surface-soft);color:var(--color-text)}.nav-item.active{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.sidebar-toggle-float{position:absolute;top:18px;left:calc(220px - 14px);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-modal);z-index:20;transition:left .2s ease,background .15s,color .15s}.sidebar-toggle-float:hover{background:var(--color-primary-soft);color:var(--color-primary)}.app-shell.sidebar-collapsed .sidebar-toggle-float{left:calc(64px - 14px)}.page{max-width:1280px;margin:0 auto;padding:24px 16px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.list-fill{display:flex;flex-direction:column;min-height:0;height:100%;padding:20px 20px 12px}.fill-scroll,.table-scroll{flex:1 1;min-height:0;overflow:auto}.fill-scroll{padding-bottom:8px}.confirm-box{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-modal);width:min(360px,calc(100vw - 32px));padding:20px 20px 0;display:flex;flex-direction:column}.confirm-title{font-weight:700;font-size:16px;margin-bottom:8px}.confirm-message{color:var(--color-text-muted);font-size:14px;line-height:1.5;white-space:pre-wrap}.confirm-box .modal-footer-center{border-top:none;padding:18px 0;margin-top:8px}.sidebar-logo-img{border-radius:6px;display:block}.user-menu{position:relative}.user-menu-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-weight:500;font-size:14px;cursor:pointer;transition:background .15s}.user-menu-btn:hover{background:var(--color-surface-soft)}.user-menu-dropdown{position:absolute;right:0;top:46px;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-modal);z-index:30;overflow:hidden}.user-menu-head{padding:12px 14px;border-bottom:1px solid var(--color-border-soft)}.user-menu-name{font-weight:600;font-size:14px}.user-menu-email{font-size:12px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:none;color:var(--color-text);font-family:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .15s}.user-menu-item:hover{background:var(--color-surface-soft)}.toast-stack{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;min-width:220px;max-width:360px;padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-modal);color:var(--color-text);font-size:14px;pointer-events:auto;animation:toast-in .2s ease}.toast-leaving{animation:toast-out .22s ease forwards}.toast-icon{display:inline-flex;flex:0 0 auto}.toast-msg{flex:1 1;min-width:0}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.wl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-auto-rows:1fr;grid-gap:12px;gap:12px;margin-bottom:16px;flex:0 0 auto}.wl-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius);transition:transform .15s,box-shadow .15s,border-color .15s}.wl-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.07);border-color:var(--color-border)}.wl-card:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.wl-card.is-active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.wl-card.is-unassigned{border-style:dashed;border-color:var(--color-danger)}.wl-head{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:40px}.wl-mono{flex-shrink:0;width:36px;height:36px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.02em;background:var(--color-surface-soft);color:var(--color-text-soft)}.wl-name{font-weight:600;font-size:13px;line-height:1.4;padding-top:8px}.wl-name,.wl-warn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-warn{font-size:11px;line-height:1.3;margin-top:2px}.wl-total{display:flex;align-items:baseline;gap:6px}.wl-total-num{font-size:40px;font-weight:700;line-height:1;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-total-unit{font-size:12px;color:var(--color-text-muted)}.wl-bar{height:10px;border-radius:999px;background:var(--color-surface-soft);overflow:hidden;margin-top:-4px}.wl-bar-fill{display:flex;gap:2px;height:100%}.wl-bar-seg{min-width:4px;border-radius:2px}.wl-list{display:flex;flex-direction:column;gap:4px}.wl-row{display:flex;align-items:center;gap:6px;font-size:12px}.wl-dot{flex-shrink:0;width:8px;height:8px;border-radius:2px}.wl-row-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.wl-row-num{margin-left:auto;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-empty{font-size:12px;color:var(--color-text-soft)}@media (prefers-reduced-motion:reduce){.wl-card{transition:none}.wl-card:hover{transform:none}}.co-chip{gap:4px;padding:2px 4px 2px 10px;border-radius:999px;font-size:12px;background:var(--color-primary-soft);color:var(--color-primary-hover);border:1px solid var(--color-primary-soft);white-space:nowrap}.co-chip,.co-chip-x{display:inline-flex;align-items:center}.co-chip-x{justify-content:center;width:18px;height:18px;border:none;border-radius:999px;background:transparent;color:inherit;cursor:pointer;padding:0}.co-chip-x:hover{background:rgba(255,255,255,.7);color:var(--color-danger,#dc2626)}.ms{position:relative}.ms-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;width:100%;height:40px;padding:0 10px 0 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:14px;text-align:left;cursor:pointer}.ms-btn:hover{background:var(--color-surface-soft)}.ms-btn-open,.ms-btn:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.ms-btn-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-caret{flex:0 0 auto;color:var(--color-text-muted)}.ms-dropdown{position:absolute;left:0;top:46px;min-width:100%;width:max-content;max-width:280px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-modal);z-index:30;overflow:hidden}.ms-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--color-border-soft)}.ms-head-label{font-size:12px;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.ms-head-actions{display:inline-flex;gap:10px;flex:0 0 auto}.ms-link{border:none;background:none;padding:0;font-family:inherit;font-size:12px;color:var(--color-primary);cursor:pointer;white-space:nowrap}.ms-link:hover{text-decoration:underline}.ms-list{max-height:260px;overflow-y:auto;padding:4px 0}.ms-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:14px;color:var(--color-text);cursor:pointer;transition:background .15s}.ms-item:hover{background:var(--color-surface-soft)}.ms-item-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-empty{padding:10px 12px;font-size:13px}.attach-menu-dropdown{position:fixed;min-width:170px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-modal);z-index:220;overflow:hidden}.attach-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;background:none;color:var(--color-text);font-family:inherit;font-size:13px;text-align:left;text-decoration:none;cursor:pointer;transition:background .15s}.attach-menu-item:hover{background:var(--color-surface-soft)}.sheet-page{display:flex;flex-direction:column;height:100vh;background:var(--color-bg)}.sheet-toolbar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.sheet-title{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-search{display:flex;align-items:center;gap:6px;max-width:260px;padding:0 10px}.sheet-search input{border:none;outline:none;background:transparent;flex:1 1;height:100%;font-family:inherit;font-size:14px;color:inherit}.sheet-tabs{display:flex;gap:4px;padding:6px 16px 0;background:var(--color-surface);border-bottom:1px solid var(--color-border-soft);overflow-x:auto}.sheet-tab{border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;background:none;padding:6px 14px;font-family:inherit;font-size:13px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.sheet-tab.is-active{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text);font-weight:600}.sheet-note{padding:8px 16px;font-size:12px;background:var(--color-primary-soft);color:var(--color-primary-hover)}.sheet-body{flex:1 1;overflow:auto}.xl-table{border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;background:var(--color-surface)}.xl-table td,.xl-table th{border-right:1px solid #d0d7de;border-bottom:1px solid #d0d7de;padding:2px 5px;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis}.xl-colhead,.xl-corner,.xl-rowhead{background:#f0f0f0;color:#555;font-weight:500;font-size:11px;text-align:center;white-space:nowrap}.xl-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:#f0f0f0}.xl-table thead .xl-cell{z-index:4;background:var(--color-surface)}.xl-rowhead,.xl-table thead .xl-cell{position:-webkit-sticky;position:sticky}.xl-rowhead{left:0;z-index:3;width:44px}.xl-corner,.xl-table thead .xl-rowhead{z-index:7}.xl-corner{position:-webkit-sticky;position:sticky;left:0;top:0}.xl-images{padding:16px;border-top:1px solid var(--color-border-soft)}.xl-image{display:block;max-width:100%;height:auto;margin-bottom:12px;border:1px solid var(--color-border);border-radius:6px}.wl-tabs{flex:0 0 auto;padding-top:12px;background:transparent}.wl-tabs .modal-tab{white-space:nowrap}.wl-cal{border:1px solid var(--color-border-soft);border-radius:var(--radius)}.wl-cal,.wl-cal-head{background:var(--color-surface)}.wl-cal-head{display:flex;border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:3}.wl-cal-head-gutter{flex:0 0 56px;border-right:1px solid var(--color-border-soft)}.wl-cal-head-days{flex:1 1;min-width:0;display:flex}.wl-cal-head-day{flex:0 0 auto;display:flex;align-items:baseline;justify-content:center;gap:6px;padding:8px 4px;border-left:1px solid var(--color-border-soft)}.wl-cal-head-day:first-child{border-left:none}.wl-cal-head-dow{font-size:12px;color:var(--color-text-muted)}.wl-cal-head-num{font-size:16px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-cal-head-day.is-weekend .wl-cal-head-dow,.wl-cal-head-day.is-weekend .wl-cal-head-num{color:var(--color-text-soft)}.wl-cal-head-day.is-today .wl-cal-head-num{color:var(--color-primary)}.wl-cal-body{display:flex;align-items:flex-start}.wl-cal-axis{position:relative;flex:0 0 56px;border-right:1px solid var(--color-border-soft)}.wl-cal-axis-label{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--color-text-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-cal-cols{position:relative;flex:1 1;min-width:0;display:flex}.wl-cal-col{position:relative;height:100%;border-left:1px solid var(--color-border-soft);background-image:repeating-linear-gradient(to bottom,var(--color-border) 0 1px,transparent 1px var(--wl-hour-h)),repeating-linear-gradient(to bottom,var(--color-border-soft) 0 1px,transparent 1px var(--wl-slot-h))}.wl-cal-col:first-child{border-left:none}.wl-cal-col.is-weekend{background-color:var(--color-surface-soft)}.wl-cal-col.is-today{background-color:color-mix(in srgb,var(--color-primary-soft) 45%,var(--color-surface))}.wl-cal-bg{position:absolute;inset:0;pointer-events:none}.wl-cal-band{position:absolute;left:0;right:0;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--color-text-muted) 16%,transparent) 0 6px,color-mix(in srgb,var(--color-text-muted) 6%,transparent) 6px 12px);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:center}.wl-cal-band span{font-size:10px;color:var(--color-text-muted);letter-spacing:.02em}.wl-cal-entry{position:absolute;margin-left:2px;padding:2px 6px 2px 8px;border-radius:6px;border:1px solid var(--color-primary);border-left-width:3px;background:var(--color-primary-soft);color:var(--color-primary-hover);overflow:hidden;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;z-index:1;transition:box-shadow .15s,opacity .15s}.wl-cal-entry:focus-visible,.wl-cal-entry:hover{outline:none;box-shadow:0 2px 8px rgba(15,23,42,.16);z-index:2}.wl-cal-entry.is-external{border-color:var(--color-info);background:color-mix(in srgb,var(--color-info) 16%,var(--color-surface));color:color-mix(in srgb,var(--color-info) 75%,#000)}.wl-cal-entry.is-outside{border-color:var(--color-warning);border-style:dashed}.wl-cal-entry.is-linked{box-shadow:0 0 0 2px var(--color-warning);z-index:2}.wl-cal-entry.is-dragging{opacity:.35}.wl-cal-entry.is-readonly{cursor:default}.wl-cal-entry-time{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.85;white-space:nowrap}.wl-cal-entry-title{font-size:12px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis}.wl-cal-entry-note{font-size:11px;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-cal-cont{display:inline-flex;align-items:center;gap:2px;font-weight:500;color:var(--color-warning)}.wl-cal-tag{margin-left:6px;padding:0 6px;border-radius:999px;font-size:10px;background:color-mix(in srgb,var(--color-danger) 14%,var(--color-surface));color:var(--color-danger)}.wl-cal-handle{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize;touch-action:none}.wl-cal-handle:after{content:"";position:absolute;left:50%;bottom:2px;width:20px;height:2px;border-radius:2px;transform:translateX(-50%);background:currentColor;opacity:0;transition:opacity .15s}.wl-cal-entry:hover .wl-cal-handle:after{opacity:.5}.wl-cal-ghost{position:absolute;margin-left:2px;padding:2px 6px;border-radius:6px;border:2px dashed var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary-hover);font-size:11px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;pointer-events:none;z-index:5}.wl-cal-month{background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius);overflow:hidden}.wl-cal-month-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--color-border)}.wl-cal-month-dow{padding:8px 6px;text-align:center;font-size:12px;font-weight:600;color:var(--color-text-muted)}.wl-cal-month-row{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--color-border-soft)}.wl-cal-month-cell{min-height:108px;max-height:200px;overflow-y:auto;padding:4px;border-left:1px solid var(--color-border-soft)}.wl-cal-month-cell:first-child{border-left:none}.wl-cal-month-cell.is-dim{background:var(--color-surface-soft)}.wl-cal-month-cell.is-dim .wl-cal-month-num{color:var(--color-text-soft)}.wl-cal-month-cell.is-weekend{background:var(--color-surface-soft)}.wl-cal-month-cell.is-today{box-shadow:inset 0 0 0 2px var(--color-primary)}.wl-cal-month-cell.is-drop{background:var(--color-primary-soft)}.wl-cal-month-top{display:flex;align-items:baseline;justify-content:space-between;gap:4px;margin-bottom:4px}.wl-cal-month-num{font-size:13px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-cal-month-sum{font-size:10px;color:var(--color-text-muted)}.wl-cal-month-list{display:flex;flex-direction:column;gap:3px}.wl-cal-entry.is-compact{position:static;margin-left:0;padding:2px 6px;border-left-width:3px;border-radius:4px}.wl-cal-entry.is-compact .wl-cal-entry-time{font-size:10px}.wl-cal-entry.is-compact .wl-cal-entry-title{font-size:11px;white-space:nowrap}.wl-cal-month-ghost{position:fixed;z-index:60;max-width:220px;padding:4px 8px;border-radius:6px;border:1px solid var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-hover);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:var(--shadow-modal);pointer-events:none}.wl-cal-viewswitch{display:flex;gap:4px}.wl-cal-form{padding:16px 20px;display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-height:0;overflow-y:auto}.wl-cal-form>*{flex-shrink:0}.wl-cal-search{height:44px}.wl-cal-label{font-weight:500;font-size:13px;margin-top:6px}.wl-cal-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.wl-cal-row3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.wl-cal-unit{display:flex;align-items:center;gap:6px}.wl-cal-unit span{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.wl-cal-picked{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary-soft)}.wl-cal-buglist{min-height:140px;max-height:min(260px,40vh);overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--color-border);border-radius:var(--radius)}.wl-cal-bugitem{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;border:none;border-bottom:1px solid var(--color-border-soft);background:none;color:inherit;font-family:inherit;font-size:14px;text-align:left;cursor:pointer}.wl-cal-bugitem:hover{background:var(--color-surface-soft)}.wl-cal-bugitem.is-picked{background:var(--color-primary-soft)}.wl-cal-bugitem-main{display:flex;flex-direction:column;min-width:0}.wl-cal-bugitem-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-cal-mode{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.wl-cal-mode-opt{position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;transition:border-color .15s,background-color .15s}.wl-cal-mode-opt input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.wl-cal-mode-opt.is-on,.wl-cal-mode-opt:hover{border-color:var(--color-primary)}.wl-cal-mode-opt.is-on{background:var(--color-primary-soft)}.wl-cal-mode-opt:focus-within{box-shadow:0 0 0 3px var(--color-primary-soft)}.wl-cal-mode-title{font-size:13px;font-weight:600}.wl-cal-mode-hint{font-size:12px;color:var(--color-text-muted)}.wl-cal-preview{padding:10px 12px;border-radius:var(--radius);background:var(--color-surface-soft);font-size:13px}.wl-cal-preview ul{margin:6px 0 0;padding-left:18px}.wl-cal-preview li{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-cal-overflow{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin:12px 0;flex:1 1 auto;min-height:0;align-items:stretch}@media (max-width:640px){.wl-cal-mode,.wl-cal-overflow,.wl-cal-row,.wl-cal-row3{grid-template-columns:1fr}}.wl-cal-overflow-card{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.wl-cal-overflow-card:hover:not(:disabled){border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.wl-cal-overflow-card:disabled{opacity:.5;cursor:not-allowed}.wl-cal-overflow-title{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--color-primary-hover)}.wl-cal-overflow-hint{font-size:12px;color:var(--color-text-muted)}.wl-cal-overflow-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-cal-overflow-list li{display:flex;gap:8px}.wl-cal-overflow-date{color:var(--color-text-muted);min-width:92px}.wl-cal-overflow-foot{margin-top:2px;font-size:12px;color:var(--color-text-soft)}.wl-cal-overflow-body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.wl-cal-overflow-sub{font-size:12px;font-weight:600;color:var(--color-text-muted)}.wl-cal-overflow-moved{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:1px dashed var(--color-border)}.wl-cal-overflow-movedItem{display:flex;flex-direction:column;gap:2px}.wl-cal-overflow-movedName{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-cal-overflow-empty{font-size:13px;color:var(--color-text-muted)}.wl-cal-overflow-scroll{padding:16px 20px 4px;flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}@media (prefers-reduced-motion:reduce){.wl-cal-entry,.wl-cal-handle:after,.wl-cal-mode-opt,.wl-cal-overflow-card{transition:none}}:root{--wl-ov-gutter:150px;--wl-ov-chrome:280px;--wl-ov-gridhead:56px;--wl-ov-rowmin:38px;--wl-ov-tlhead:28px;--wl-cell-blue:#123a63;--wl-cell-red:#a11b2e}.wl-ov-page{padding:20px 20px 12px}.wl-ov-page,.wl-ov-page .table-scroll{flex:0 0 auto}.wl-ov-panel{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.wl-ov-toolbar{margin-bottom:0}.wl-ov-views{display:flex;gap:4px}.wl-ov-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.wl-ov-stat{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius)}.wl-ov-stat.is-warn{border-color:color-mix(in srgb,var(--color-warning) 55%,var(--color-border-soft));background:color-mix(in srgb,var(--color-warning) 7%,var(--color-surface))}.wl-ov-stat-num{font-size:22px;font-weight:700;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-stat.is-warn .wl-ov-stat-num{color:var(--color-warning)}.wl-ov-stat-label{font-size:12px;color:var(--color-text-muted)}.wl-ov-board{padding:0;overflow:hidden;min-height:max(300px,calc(100vh - var(--wl-ov-chrome)));min-height:max(300px,calc(100dvh - var(--wl-ov-chrome)))}.wl-ov-tl{overflow:auto;max-height:max(300px,calc(100vh - var(--wl-ov-chrome)));max-height:max(300px,calc(100dvh - var(--wl-ov-chrome)))}.wl-ov-tl-head,.wl-ov-tl-row{display:flex;align-items:stretch;min-width:760px}.wl-ov-tl-head{position:-webkit-sticky;position:sticky;top:0;z-index:3;height:26px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.wl-ov-tl-row{border-bottom:1px solid var(--color-border-soft)}.wl-ov-tl-row:last-child{border-bottom:none}.wl-ov-tl-name{position:-webkit-sticky;position:sticky;left:0;z-index:2;flex:0 0 var(--wl-ov-gutter);min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:4px 8px;background:var(--color-surface);border-right:1px solid var(--color-border-soft);font-size:12px}.wl-ov-tl-head-name{font-weight:600;color:var(--color-text-muted);border-bottom:none}.wl-ov-tl-name-text{font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-ov-tl-sum{font-size:11px;color:var(--color-text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-flag{font-size:10px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger);white-space:nowrap}.wl-ov-tl-track{position:relative;flex:1 1;min-width:0;background-image:repeating-linear-gradient(to right,var(--color-border-soft) 0 1px,transparent 1px 6.25%)}.wl-ov-tl-row>.wl-ov-tl-track{min-height:calc((max(300px, calc(100vh - var(--wl-ov-chrome))) - var(--wl-ov-tlhead)) / var(--wl-ov-rows, 999) - 1px);min-height:calc((max(300px, calc(100dvh - var(--wl-ov-chrome))) - var(--wl-ov-tlhead)) / var(--wl-ov-rows, 999) - 1px)}.wl-ov-tl-lanes{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto 0;pointer-events:none}.wl-ov-tl-hour{position:absolute;top:5px;transform:translateX(-50%);font-size:10px;color:var(--color-text-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.wl-ov-tl-band{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--color-text-muted) 10%,transparent);pointer-events:none}.wl-ov-tl-none{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--color-text-soft)}.wl-ov-tl-row.is-outside{box-shadow:inset 0 0 0 2px var(--color-danger);background:color-mix(in srgb,var(--color-danger) 4%,transparent)}.wl-ov-tl-row.is-outside .wl-ov-tl-name{border-left:2px solid var(--color-danger);background:color-mix(in srgb,var(--color-danger) 4%,var(--color-surface))}.wl-ov-tl-block{position:absolute;-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;font:inherit;text-align:left;display:flex;align-items:center;padding:0 7px;border-radius:4px;overflow:hidden;cursor:pointer;border:1px solid var(--color-primary);border-left-width:3px;background:var(--color-primary-soft);color:var(--color-primary-hover);transition:filter .12s}.wl-ov-tl-block:hover{filter:brightness(.96)}.wl-ov-tl-block:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wl-ov-tl-block.is-other{border-color:var(--color-text-muted);background:var(--color-surface-soft);color:var(--color-text-muted)}.wl-ov-tl-block.is-static{cursor:default}.wl-ov-tl-block-text{display:block;font-size:11px;line-height:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-ov-gridwrap{overflow:auto;max-height:max(300px,calc(100vh - var(--wl-ov-chrome)));max-height:max(300px,calc(100dvh - var(--wl-ov-chrome)))}.wl-ov-grid{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.wl-ov-grid td,.wl-ov-grid th{border-bottom:1px solid var(--color-border-soft);border-right:1px solid var(--color-border-soft);padding:8px 10px;text-align:center;vertical-align:middle;white-space:nowrap}.wl-ov-grid tbody td,.wl-ov-grid tbody th{height:max(var(--wl-ov-rowmin),calc((max(300px, calc(100vh - var(--wl-ov-chrome))) - var(--wl-ov-gridhead)) / var(--wl-ov-rows, 999)));height:max(var(--wl-ov-rowmin),calc((max(300px, calc(100dvh - var(--wl-ov-chrome))) - var(--wl-ov-gridhead)) / var(--wl-ov-rows, 999)))}.wl-ov-grid thead th{top:0;z-index:2;border-bottom:1px solid var(--color-border);padding:0}.wl-ov-grid thead th,.wl-ov-sticky{position:-webkit-sticky;position:sticky;background:var(--color-surface)}.wl-ov-sticky{left:0;z-index:4;text-align:left!important;border-right:1px solid var(--color-border);min-width:150px;max-width:220px}.wl-ov-grid thead .wl-ov-sticky{z-index:5;padding:8px 10px;color:var(--color-text-muted)}.wl-ov-rowname{font-weight:600;overflow:hidden;text-overflow:ellipsis}.wl-ov-daybtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;font:inherit;color:inherit;cursor:pointer;width:100%;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:1px}.wl-ov-daybtn:hover{background:var(--color-surface-soft)}.wl-ov-dow{font-size:11px;color:var(--color-text-muted)}.wl-ov-dnum{font-size:15px;font-weight:600;line-height:1.25;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-grid thead th.is-weekend .wl-ov-dnum,.wl-ov-grid thead th.is-weekend .wl-ov-dow{color:var(--color-text-soft)}.wl-ov-cell{min-width:62px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-cell.is-weekend{background:var(--color-surface-soft)}.wl-ov-cell.has-val{font-weight:600}.wl-ov-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-total-col{background:var(--color-surface-soft);font-weight:600;min-width:92px}.wl-ov-cell.is-clickable{padding:0}.wl-ov-cell.has-val:not(.is-clickable){background:var(--wl-cell-tone,transparent)}.wl-ov-cellbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;font:inherit;color:inherit;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:8px 10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-decoration:none;transition:transform .12s}.wl-ov-cellbtn:before{content:"";position:absolute;inset:3px;border-radius:6px;border:1px solid color-mix(in srgb,var(--color-text) 10%,transparent);background-color:var(--wl-cell-tone,transparent);background-image:none;box-shadow:0 1px 2px color-mix(in srgb,var(--color-text) 16%,transparent);transition:border-color .12s,background-color .12s,box-shadow .12s;pointer-events:none}.wl-ov-cellbtn:hover{transform:translateY(-1px)}.wl-ov-cellbtn:hover:before{border-color:var(--wl-cell-blue);background-image:linear-gradient(color-mix(in srgb,var(--wl-cell-blue) 14%,transparent),color-mix(in srgb,var(--wl-cell-blue) 14%,transparent));box-shadow:0 2px 4px color-mix(in srgb,var(--color-text) 22%,transparent)}.wl-ov-cellbtn:active{transform:translateY(0)}.wl-ov-cellbtn:active:before{background-image:linear-gradient(color-mix(in srgb,var(--wl-cell-blue) 20%,transparent),color-mix(in srgb,var(--wl-cell-blue) 20%,transparent));box-shadow:0 1px 1px color-mix(in srgb,var(--color-text) 18%,transparent)}.wl-ov-cellnum{position:relative;z-index:1}.wl-ov-cellbtn:focus-visible{outline:none}.wl-ov-cellbtn:focus-visible:before{border-color:var(--wl-cell-blue);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--wl-cell-blue) 55%,transparent),0 1px 2px color-mix(in srgb,var(--color-text) 16%,transparent)}.wl-ov-cell.is-outside .wl-ov-cellbtn:hover:before{border-color:var(--wl-cell-red);background-image:linear-gradient(color-mix(in srgb,var(--wl-cell-red) 14%,transparent),color-mix(in srgb,var(--wl-cell-red) 14%,transparent))}.wl-ov-cell.is-outside .wl-ov-cellbtn:active:before{background-image:linear-gradient(color-mix(in srgb,var(--wl-cell-red) 20%,transparent),color-mix(in srgb,var(--wl-cell-red) 20%,transparent))}.wl-ov-cell.is-outside .wl-ov-cellbtn:focus-visible:before{border-color:var(--wl-cell-red);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--wl-cell-red) 55%,transparent),0 1px 2px color-mix(in srgb,var(--color-text) 16%,transparent)}.wl-ov-grid thead th.is-today{background:var(--color-primary-soft);box-shadow:inset 0 2px 0 var(--color-primary),0 0 10px color-mix(in srgb,var(--color-primary) 30%,transparent);z-index:3}.wl-ov-grid .wl-ov-cell.is-today:after,.wl-ov-grid thead th.is-today:after{content:"";position:absolute;top:0;bottom:-1px;left:-1px;right:-1px;border-left:2px solid var(--color-primary);border-right:2px solid var(--color-primary);pointer-events:none}.wl-ov-grid thead th.is-today .wl-ov-dnum,.wl-ov-grid thead th.is-today .wl-ov-dow{color:var(--color-primary-hover)}.wl-ov-grid thead th.is-today .wl-ov-daybtn:hover{background:color-mix(in srgb,var(--color-primary) 20%,var(--color-surface))}.wl-ov-cell.is-today{box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--color-primary) 8%,transparent);position:relative}.wl-ov-grid tbody tr:last-child .wl-ov-cell.is-today{border-bottom-color:var(--color-primary)}.modal-overlay.wl-ov-daymodal{z-index:45}.wl-ov-daymodal .modal{width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 48px)}@media (max-width:1000px){.wl-ov-daymodal .modal{width:100vw;height:100vh;max-height:none;border-radius:0}}.wl-ov-dm-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.wl-ov-dm-sum{display:flex;flex-wrap:wrap;gap:22px;padding:10px 20px;background:var(--color-surface-soft);border-bottom:1px solid var(--color-border)}.wl-ov-dm-sumitem{display:flex;flex-direction:column;gap:1px}.wl-ov-dm-sumnum{font-size:16px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-dm-sumlabel{font-size:11px;color:var(--color-text-muted)}.wl-ov-dm-state{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px}.wl-ov-dm-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px;overflow:hidden}.wl-ov-dm-calpane{min-height:0;overflow:auto;padding:14px 16px 18px}.wl-ov-dm-listpane{min-height:0;overflow-y:auto;padding:14px 16px 18px;border-left:1px solid var(--color-border-soft);background:var(--color-surface-soft)}@media (max-width:1000px){.wl-ov-dm-body{display:block;overflow-y:auto}.wl-ov-dm-calpane,.wl-ov-dm-listpane{overflow:visible;min-height:auto}.wl-ov-dm-listpane{border-left:none;border-top:1px solid var(--color-border-soft)}}.wl-ov-dm-cal{display:flex;align-items:flex-start;padding:8px 0 10px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.wl-ov-dm-col{position:relative;flex:1 1;min-width:0;background-image:repeating-linear-gradient(to bottom,var(--color-border) 0 1px,transparent 1px var(--wl-hour-h)),repeating-linear-gradient(to bottom,var(--color-border-soft) 0 1px,transparent 1px var(--wl-slot-h))}.wl-ov-dm-block{--wl-ov-dm-c:var(--wl-ov-dm-accent,var(--color-primary));position:absolute;margin-left:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;text-align:left;display:flex;flex-direction:column;gap:1px;padding:2px 6px 2px 7px;border-radius:6px;border:1px solid var(--wl-ov-dm-c);border-left-width:3px;background:color-mix(in srgb,var(--wl-ov-dm-c) 16%,var(--color-surface));color:color-mix(in srgb,var(--wl-ov-dm-c) 80%,var(--color-text));overflow:hidden;cursor:pointer;z-index:1;transition:box-shadow .15s}.wl-ov-dm-block:focus-visible,.wl-ov-dm-block:hover{outline:none;box-shadow:0 2px 8px color-mix(in srgb,var(--color-text) 18%,transparent);z-index:2}.wl-ov-dm-block:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wl-ov-dm-block.is-external{--wl-ov-dm-c:var(--wl-ov-dm-accent,var(--color-info))}.wl-ov-dm-block.is-outside{border-color:var(--color-warning);border-style:dashed}.wl-ov-dm-block.is-static{cursor:default}.wl-ov-dm-btime{font-size:10px;line-height:1.3;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.85;white-space:nowrap}.wl-ov-dm-btitle{font-size:12px;font-weight:600}.wl-ov-dm-bnote,.wl-ov-dm-btitle{line-height:1.3;overflow:hidden;text-overflow:ellipsis}.wl-ov-dm-bnote{font-size:11px;opacity:.8;white-space:nowrap}.wl-ov-dm-block.is-xs{flex-direction:row;align-items:baseline;gap:5px;padding-top:0;padding-bottom:0;white-space:nowrap}.wl-ov-dm-block.is-xs .wl-ov-dm-btime,.wl-ov-dm-block.is-xs .wl-ov-dm-btitle{font-size:10px;line-height:1.05;min-width:0}.wl-ov-dm-block.is-sm .wl-ov-dm-bnote,.wl-ov-dm-block.is-xs .wl-ov-dm-bnote{display:none}.wl-ov-dm-list{list-style:none;margin:0;padding:0;gap:8px}.wl-ov-dm-item,.wl-ov-dm-list{display:flex;flex-direction:column}.wl-ov-dm-item{gap:4px;padding:10px 12px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface)}.wl-ov-dm-item.is-outside{border-color:var(--color-danger);box-shadow:inset 3px 0 0 var(--color-danger)}.wl-ov-dm-item.is-editable{cursor:pointer}.wl-ov-dm-item.is-editable:hover{border-color:var(--color-primary)}.wl-ov-dm-item.is-editable:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wl-ov-dm-time{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px}.wl-ov-dm-dur{font-size:11px;color:var(--color-text-muted)}.wl-ov-dm-flag{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;color:var(--color-danger);background:color-mix(in srgb,var(--color-warning) 22%,transparent)}.wl-ov-dm-main{flex:1 1 auto;min-width:0}.wl-ov-dm-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;font-weight:600;color:var(--color-primary);cursor:pointer;text-align:left}.wl-ov-dm-link:hover{text-decoration:underline}.wl-ov-dm-name{font-weight:600}.wl-ov-dm-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.wl-ov-dm-kind,.wl-ov-dm-proj{font-size:11px;color:var(--color-text-muted)}.wl-ov-dm-gone{font-size:11px;font-weight:600;color:var(--color-danger)}.wl-ov-dm-note{margin:6px 0 0;font-size:12px;color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word}.wl-ov-otcard{display:flex;flex-direction:column;gap:10px}.wl-ov-othead{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.wl-ov-otyear{width:auto;height:32px;margin-left:auto;font-size:13px}.wl-ov-otsum{font-size:12px;margin-top:-4px}.wl-ov-otgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));grid-gap:10px;gap:10px}.wl-ov-otcell{--wl-ot-tone:var(--color-warning);position:relative;min-width:0;display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px;border:1px solid var(--color-border-soft);border-radius:10px;background:var(--color-surface)}.wl-ov-otcell.is-top{border-color:color-mix(in srgb,var(--wl-ot-tone) 45%,var(--color-border));background:color-mix(in srgb,var(--wl-ot-tone) 6%,var(--color-surface));box-shadow:inset 3px 0 0 0 var(--wl-ot-tone)}.wl-ov-otcell.is-zero{background:var(--color-surface-soft);border-color:var(--color-border-soft)}.wl-ov-otcell.is-zero .wl-ov-otdays{color:var(--color-text-soft)}.wl-ov-otcell.is-zero .wl-ov-otperson{color:var(--color-text-muted);font-weight:500}.wl-ov-otcell.is-zero .wl-ov-otbar{background:var(--color-border-soft)}.wl-ov-otzero{color:var(--color-success)}.wl-ov-otrank{position:absolute;top:8px;right:10px;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--color-text-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wl-ov-otcell.is-top .wl-ov-otrank,.wl-ov-otmono{color:var(--wl-ot-tone)}.wl-ov-otmono{width:28px;height:28px;font-size:11px;background:color-mix(in srgb,var(--wl-ot-tone) 15%,var(--color-surface))}.wl-ov-otperson{font-size:12px;font-weight:600;line-height:1.4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-ov-otscore{display:flex;align-items:baseline;gap:4px}.wl-ov-otdays{font-size:28px;font-weight:700;line-height:1;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--wl-ot-tone)}.wl-ov-otunit{font-size:12px}.wl-ov-otdesc,.wl-ov-otunit{color:var(--color-text-muted)}.wl-ov-otdesc{font-size:11px;line-height:1.3}.wl-ov-otbar{height:6px;border-radius:999px;background:var(--color-surface-soft);overflow:hidden;margin-top:2px}.wl-ov-otbar-fill{height:100%;border-radius:999px;background:var(--wl-ot-tone);transition:width .2s ease}.wl-ov-spin{animation:wl-ov-spin 1s linear infinite}@keyframes wl-ov-spin{to{transform:rotate(1turn)}}@media (max-width:720px){:root{--wl-ov-gutter:110px;--wl-ov-chrome:440px;--wl-ov-gridhead:48px;--wl-ov-rowmin:30px}.wl-ov-otgrid{grid-template-columns:repeat(auto-fill,minmax(min(132px,100%),1fr));gap:8px}.wl-ov-otdays{font-size:24px}.wl-ov-grid{font-size:12px}.wl-ov-cellbtn,.wl-ov-grid td,.wl-ov-grid th,.wl-ov-grid thead .wl-ov-sticky{padding:5px 6px}.wl-ov-cellbtn:before{inset:3px 2px;border-radius:5px}.wl-ov-daybtn{padding:5px 3px}.wl-ov-dnum{font-size:13px}.wl-ov-sticky{min-width:108px;max-width:140px}.wl-ov-cell{min-width:46px}.wl-ov-total-col{min-width:68px}}@media (prefers-reduced-motion:reduce){.wl-ov-cellbtn,.wl-ov-cellbtn:before,.wl-ov-dm-block,.wl-ov-otbar-fill,.wl-ov-tl-block{transition:none}.wl-ov-cellbtn:hover{transform:none}.wl-ov-spin{animation:none}}:root{--wl-c01:#cc6c13;--wl-c02:#bb7900;--wl-c03:#a78500;--wl-c04:#908f00;--wl-c05:#74981b;--wl-c06:#4c9f46;--wl-c07:#00a367;--wl-c08:#00a084;--wl-c09:#009d9e;--wl-c10:#0099b7;--wl-c11:#0094cf;--wl-c12:#368ce0;--wl-c13:#6283e3;--wl-c14:#8179df;--wl-c15:#9a70d4;--wl-c16:#af68c3;--wl-c17:#bf62ac;--wl-c18:#cb5e93}.wl-cal-entry.has-tone{border-color:var(--wl-entry-tone);background:color-mix(in srgb,var(--wl-entry-tone) 22%,var(--color-surface));color:color-mix(in srgb,var(--wl-entry-tone) 40%,var(--color-text))}.wl-cal-entry.has-tone.is-outside{border-color:var(--color-warning);border-style:dashed}.wl-ov-tl-block.has-tone{border-color:var(--wl-entry-tone);background:color-mix(in srgb,var(--wl-entry-tone) 22%,var(--color-surface));color:color-mix(in srgb,var(--wl-entry-tone) 40%,var(--color-text))}.wl-color-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.wl-color-sw{width:26px;height:26px;padding:0;border-radius:6px;border:1px solid color-mix(in srgb,var(--color-text) 18%,transparent);background:var(--wl-sw-tone,var(--color-surface));cursor:pointer;transition:transform .12s,box-shadow .12s}.wl-color-sw:hover{transform:translateY(-1px)}.wl-color-sw:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.wl-color-sw.is-on{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text)}.wl-color-sw.is-none{background:linear-gradient(to top right,transparent calc(50% - 1px),var(--color-text-soft) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),var(--color-surface-soft)}.wl-cal-preview.has-tone{box-shadow:inset 3px 0 0 var(--wl-entry-tone);background:color-mix(in srgb,var(--wl-entry-tone) 10%,var(--color-surface))}@media (prefers-reduced-motion:reduce){.wl-color-sw{transition:none}.wl-color-sw:hover{transform:none}}:root{--wl-ev-event:#7c3aed;--wl-ev-meeting:#0f766e}.wl-cal-evband.is-event,.wl-cal-evchip.is-event,.wl-ev-preview.is-event,.wl-ov-ev-block.is-event,.wl-ov-evrow.is-event,.wl-ov-tl-row.is-eventrow.is-event{--wl-ev-tone:var(--wl-ev-event)}.wl-cal-evband.is-meeting,.wl-cal-evchip.is-meeting,.wl-ev-preview.is-meeting,.wl-ov-ev-block.is-meeting,.wl-ov-evrow.is-meeting,.wl-ov-tl-row.is-eventrow.is-meeting{--wl-ev-tone:var(--wl-ev-meeting)}.wl-cal-evband.has-tone,.wl-cal-evchip.has-tone,.wl-ev-preview.has-tone,.wl-ov-ev-block.has-tone{--wl-ev-tone:var(--wl-entry-tone)}.wl-cal-evband{position:absolute;left:0;right:0;pointer-events:none;overflow:visible;border-top:1px dashed color-mix(in srgb,var(--wl-ev-tone) 55%,transparent);border-bottom:1px dashed color-mix(in srgb,var(--wl-ev-tone) 55%,transparent);background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--wl-ev-tone) 13%,transparent) 0 7px,color-mix(in srgb,var(--wl-ev-tone) 5%,transparent) 7px 14px)}.wl-cal-evchip{position:absolute;top:1px;left:2px;z-index:3;pointer-events:auto;max-width:calc(100% - 6px);display:inline-flex;align-items:center;gap:4px;height:17px;padding:0 7px;border-radius:999px;border:1px solid color-mix(in srgb,var(--wl-ev-tone) 55%,transparent);background:color-mix(in srgb,var(--wl-ev-tone) 16%,var(--color-surface));color:color-mix(in srgb,var(--wl-ev-tone) 82%,#000);font:inherit;font-size:10px;font-weight:600;line-height:1;white-space:nowrap;overflow:hidden;cursor:pointer;transition:background .12s,box-shadow .12s}.wl-cal-evchip:hover{background:color-mix(in srgb,var(--wl-ev-tone) 26%,var(--color-surface));box-shadow:0 1px 4px color-mix(in srgb,var(--color-text) 18%,transparent)}.wl-cal-evchip:focus-visible{outline:2px solid var(--wl-ev-tone);outline-offset:1px}.wl-cal-evchip-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.85}.wl-cal-evchip-text{overflow:hidden;text-overflow:ellipsis}.wl-cal-evchip.is-draggable{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.wl-cal-evchip.is-dragging{opacity:.35}.wl-cal-month-evlist{display:flex;flex-direction:column;gap:2px;margin-bottom:3px}.wl-cal-evchip.is-month{position:static;z-index:auto;width:100%;max-width:100%;height:auto;min-height:17px;padding:1px 6px;border-radius:4px;border-style:dashed}.wl-cal-evghost{position:absolute;margin-left:2px;padding:2px 6px;border-radius:6px;border:2px dashed var(--wl-ev-tone);background:color-mix(in srgb,var(--wl-ev-tone) 14%,transparent);color:color-mix(in srgb,var(--wl-ev-tone) 85%,#000);font-size:11px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;pointer-events:none;z-index:5}.wl-cal-evghost.is-event{--wl-ev-tone:var(--wl-ev-event)}.wl-cal-evghost.is-meeting{--wl-ev-tone:var(--wl-ev-meeting)}.wl-cal-evghost.has-tone{--wl-ev-tone:var(--wl-entry-tone)}.wl-ov-tl-row.is-eventrow{background:color-mix(in srgb,var(--color-surface-soft) 75%,transparent)}.wl-ov-tl-row:not(.is-eventrow)+.wl-ov-tl-row.is-eventrow{border-top:2px solid var(--color-border)}.wl-ov-tl-row.is-eventrow .wl-ov-tl-name{background:color-mix(in srgb,var(--color-surface-soft) 75%,var(--color-surface));color:var(--color-text-muted)}.wl-ov-ev-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--wl-ev-tone,var(--color-text-muted))}.wl-ov-ev-block{cursor:pointer;border-style:dashed;border-left-width:3px;border-color:color-mix(in srgb,var(--wl-ev-tone) 60%,transparent);background:color-mix(in srgb,var(--wl-ev-tone) 12%,var(--color-surface));color:color-mix(in srgb,var(--wl-ev-tone) 82%,#000)}.wl-ov-ev-block:focus-visible{outline-color:var(--wl-ev-tone)}.wl-ov-grid tbody tr:not(.wl-ov-evrow)+tr.wl-ov-evrow>td,.wl-ov-grid tbody tr:not(.wl-ov-evrow)+tr.wl-ov-evrow>th{border-top:2px solid var(--color-border)}.wl-ov-evrow .wl-ov-sticky{background:color-mix(in srgb,var(--color-surface-soft) 75%,var(--color-surface));color:var(--color-text-muted);font-weight:600}.wl-ov-evrow .wl-ov-ev-dot{display:inline-block;vertical-align:middle;margin-right:6px}.wl-ov-evcell{padding:4px 6px!important}.wl-ov-evbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:26px;height:22px;padding:0 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--wl-ev-tone) 45%,transparent);background:color-mix(in srgb,var(--wl-ev-tone) 14%,var(--color-surface));color:color-mix(in srgb,var(--wl-ev-tone) 82%,#000);font:inherit;font-size:12px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer;transition:background .12s,box-shadow .12s}.wl-ov-evbtn:hover{background:color-mix(in srgb,var(--wl-ev-tone) 24%,var(--color-surface));box-shadow:0 1px 3px color-mix(in srgb,var(--color-text) 20%,transparent)}.wl-ov-evbtn:focus-visible{outline:2px solid var(--wl-ev-tone);outline-offset:1px}.wl-ev-hint{padding:8px 10px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--color-info) 25%,transparent);background:color-mix(in srgb,var(--color-info) 7%,var(--color-surface-soft));color:var(--color-text-muted);font-size:12px}.wl-ev-preview{margin-top:8px;padding:6px 10px;border-radius:6px;border:1px dashed color-mix(in srgb,var(--wl-ev-tone) 60%,transparent);border-left-width:3px;background:color-mix(in srgb,var(--wl-ev-tone) 12%,var(--color-surface));color:color-mix(in srgb,var(--wl-ev-tone) 82%,#000);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (prefers-reduced-motion:reduce){.wl-cal-evchip,.wl-ov-evbtn{transition:none}}.hc-card{position:fixed;z-index:60;pointer-events:none;width:max-content;max-width:320px;max-height:min(70vh,520px);overflow:hidden;padding:10px 12px;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius);box-shadow:var(--shadow-modal);color:var(--color-text);font-size:12px;line-height:1.45}.hc-head{display:flex;flex-direction:column;gap:1px}.hc-head b{font-size:13px;font-weight:600;overflow-wrap:anywhere}.hc-sub{color:var(--color-text-muted);font-size:11px}.hc-stats{display:flex;gap:14px;margin-top:8px;padding:6px 9px;border-radius:6px;background:var(--color-surface-soft)}.hc-stat{display:flex;flex-direction:column;line-height:1.25}.hc-num{font-size:13px;font-weight:600}.hc-label,.hc-num{white-space:nowrap}.hc-label{color:var(--color-text-muted);font-size:10px}.hc-flag{display:inline-block;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--color-danger) 10%,var(--color-surface));color:var(--color-danger);font-size:11px;font-weight:600}.hc-flag,.hc-sec{margin-top:8px}.hc-sec-title{margin-bottom:3px;color:var(--color-text-muted);font-size:11px;font-weight:600}.hc-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.hc-item{display:flex;align-items:baseline;gap:7px}.hc-time{flex:0 0 auto;color:var(--color-text-muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hc-item.is-outside .hc-time{color:var(--color-danger);font-weight:600}.hc-item.is-event .hc-time{color:var(--color-info)}.hc-title{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hc-empty,.hc-more{color:var(--color-text-soft);font-size:11px}.hc-more{margin-top:2px}.hc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:7px}.hc-chip{border-radius:999px;background:var(--color-surface-soft);color:var(--color-text-muted);white-space:nowrap}.hc-chip,.hc-meta .badge{padding:1px 8px;font-size:11px}.hc-note{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:7px 0 0;color:var(--color-text-muted);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.hc-hint{margin-top:8px;padding-top:6px;border-top:1px dashed var(--color-border-soft);color:var(--color-text-soft);font-size:11px}:root{--cap-empty-bg:var(--color-surface-soft);--cap-l1:#eff6ff;--cap-l2:#dbeafe;--cap-l3:#bfdbfe;--cap-over-bg:#fee2e2;--cap-over-border:var(--color-danger);--cap-over-text:#b91c1c}@media (max-width:640px){.dash-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;border-bottom:0;box-shadow:inset 0 -1px 0 var(--color-border);scrollbar-width:thin;overscroll-behavior-x:contain}.dash-tabs .modal-tab{flex:0 0 auto;margin-bottom:0}}.dash-tab-badge{min-width:20px;margin-left:6px;padding:0 7px;font-size:11px;font-weight:600;line-height:18px;text-align:center;vertical-align:1px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-tab-badge.is-warning{background:#fef3c7;border-color:#fde68a;color:#92400e}.dash-tab-badge.is-danger{background:var(--cap-over-bg);border-color:#fecaca;color:var(--cap-over-text)}.cap-section{margin-top:0;min-width:0}.cap-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px;margin-bottom:12px}.cap-title{margin:0}.cap-subtitle{color:var(--color-text-muted);font-size:13px}.cap-controls{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;max-width:100%}.cap-seg{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.cap-seg-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:38px;padding:0 14px;border:0;border-left:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font:inherit;font-weight:500;white-space:nowrap;cursor:pointer}.cap-seg-btn:first-child{border-left:0}.cap-seg-btn:hover{background:var(--color-surface-soft);color:var(--color-text)}.cap-seg-btn.is-active{background:var(--color-primary-soft);color:var(--color-primary-hover);font-weight:600}.cap-seg-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.cap-controls .btn:disabled{opacity:.6;cursor:default}.cap-spin{animation:cap-spin 1s linear infinite}@keyframes cap-spin{to{transform:rotate(1turn)}}.cap-body{transition:opacity .15s}.cap-body.is-loading{opacity:.6}.cap-error{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-bottom:12px;padding:10px 14px;border:1px solid #fecaca;border-radius:var(--radius);background:#fef2f2;color:var(--cap-over-text)}.cap-notice{margin:0 0 12px;padding:10px 14px;border:1px solid var(--cap-l3);border-radius:var(--radius);background:var(--cap-l1);color:var(--color-text);font-size:13px}.cap-tablink{font-weight:600;text-decoration:underline;text-underline-offset:2px}.cap-tablink:hover{color:var(--color-primary-hover)}.cap-tablink:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.cap-assume{margin:8px 0 12px;color:var(--color-text-soft);font-size:12px}.cap-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));grid-gap:12px;gap:12px}.cap-kpi{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:12px 14px;border:1px solid var(--color-border-soft);border-left:3px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-width:0}.cap-kpi-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;margin:0;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.cap-kpi-btn:hover{border-top-color:var(--color-primary);border-right-color:var(--color-primary);border-bottom-color:var(--color-primary);box-shadow:0 2px 8px rgba(15,23,42,.08)}.cap-kpi-btn:not(.is-warning):not(.is-danger):hover{border-left-color:var(--color-primary)}.cap-kpi-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.cap-kpi-go{flex:0 0 auto;color:var(--color-text-soft);transition:color .15s,transform .15s}.cap-kpi-btn:focus-visible .cap-kpi-go,.cap-kpi-btn:hover .cap-kpi-go{color:var(--color-primary);transform:translateX(2px)}.cap-kpi.is-warning{border-left-color:var(--color-warning)}.cap-kpi.is-danger{border-left-color:var(--color-danger)}.cap-kpi-label{display:flex;align-items:center;justify-content:space-between;gap:4px;color:var(--color-text-muted);font-size:13px}.cap-kpi-value{font-size:24px;font-weight:700;line-height:1.3;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-kpi.is-warning .cap-kpi-value{color:#b45309}.cap-kpi.is-danger .cap-kpi-value{color:var(--cap-over-text)}.cap-kpi-sub{color:var(--color-text-soft);font-size:12px;overflow-wrap:anywhere}.cap-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:8px;color:var(--color-text-muted);font-size:12px}.cap-legend-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.cap-legend-over{color:var(--cap-over-text);font-weight:600}.cap-legend-note{color:var(--color-text-soft)}.cap-swatch{display:inline-block;width:16px;height:12px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.cap-swatch.cap-over{box-shadow:inset 0 0 0 2px var(--cap-over-border)}.cap-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface)}.cap-table{border-collapse:separate;border-spacing:2px;min-width:100%;font-size:13px}.cap-colhead{padding:6px 8px;color:var(--color-text-muted);font-weight:600;text-align:center;white-space:nowrap;vertical-align:bottom}.cap-colhead-main{color:var(--color-text)}.cap-colhead-sub{font-size:11px;font-weight:400}.cap-colhead.is-current{box-shadow:inset 0 -2px 0 var(--color-primary)}.cap-colhead.is-current .cap-colhead-main{color:var(--color-primary-hover)}.cap-colhead-extra .cap-colhead-main{color:var(--color-text-muted)}.cap-name{position:-webkit-sticky;position:sticky;left:0;z-index:1;min-width:150px;max-width:210px;padding:6px 10px 6px 8px;background:var(--color-surface);box-shadow:2px 0 0 var(--color-surface);text-align:left;vertical-align:middle;font-weight:400}.cap-corner{color:var(--color-text-muted);font-weight:600;vertical-align:bottom}.cap-name-main{font-weight:600;overflow-wrap:anywhere}.cap-name-sub{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;color:var(--color-text-muted);font-size:11px}.cap-badge-unest{padding:0 7px;background:#fef3c7;border-color:#fde68a;color:#92400e;font-size:11px}.cap-table tfoot .cap-name{border-top:1px solid var(--color-border)}.cap-table tfoot .cap-name-main{font-weight:700}.cap-table tfoot .cap-val b{font-weight:800}.cap-cell{height:1px;min-width:104px;padding:0;border-radius:6px;vertical-align:middle}.cap-cell,.cap-l0{background:var(--cap-empty-bg)}.cap-l1{background:var(--cap-l1)}.cap-l2{background:var(--cap-l2)}.cap-l3{background:var(--cap-l3)}.cap-over{background:var(--cap-over-bg);box-shadow:inset 0 0 0 2px var(--cap-over-border)}.cap-cell.cap-col-total{min-width:96px;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border-soft)}.cap-cell.cap-col-beyond,.cap-cell.cap-col-nodue{min-width:92px}.cap-cellbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;height:100%;min-height:52px;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--color-text);font:inherit;text-align:center;cursor:pointer}.cap-cellbtn:hover{box-shadow:inset 0 0 0 1px var(--color-primary)}.cap-cellbtn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.cap-cell.is-selected .cap-cellbtn{box-shadow:inset 0 0 0 2px var(--color-primary)}.cap-val{color:var(--color-text);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-val b{font-weight:700}.cap-pct,.cap-unit{color:var(--color-text-muted);font-size:11px}.cap-pct{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-over .cap-pct,.cap-over .cap-unit,.cap-over .cap-val{color:var(--cap-over-text)}.cap-over .cap-pct{font-weight:600}.cap-dash{color:var(--color-text-soft)}.cap-late{display:inline-flex;align-items:center;gap:3px;color:var(--cap-over-text);font-weight:600}.cap-cellbtn .cap-late{font-size:11px;white-space:nowrap}.cap-tip-item{display:flex;flex-direction:column;min-width:0;padding:1px 0}.cap-tip-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cap-tip-meta{color:var(--color-text-muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-tip-late{color:var(--cap-over-text);font-weight:600}.cap-panel{margin-top:10px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:0 4px 12px rgba(15,23,42,.06)}.cap-panel:focus{outline:none}.cap-panel:focus-visible{box-shadow:0 0 0 3px var(--color-primary-soft);border-color:var(--color-primary)}.cap-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cap-panel-title{font-weight:700;overflow-wrap:anywhere}.cap-panel-sub{color:var(--color-text-muted);font-size:12px}.cap-panel-x{flex:0 0 auto;height:32px;padding:0 8px}.cap-panel-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.cap-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;background:var(--color-surface-soft);color:var(--color-text-muted);font-size:12px;white-space:nowrap}.cap-chip b{color:var(--color-text);font-weight:600}.cap-chip-danger{background:var(--cap-over-bg);color:var(--cap-over-text);font-weight:600;white-space:normal}.cap-panel-sec{margin:12px 0 2px;font-weight:600}.cap-panel-note,.cap-panel-sec{color:var(--color-text-muted);font-size:12px}.cap-panel-note{margin:8px 0 0}.cap-breakdown{margin:0;padding:0;list-style:none}.cap-breakdown-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;width:100%;padding:6px 4px;border:0;border-bottom:1px solid var(--color-border-soft);background:transparent;color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer}.cap-breakdown-btn:hover{background:var(--color-surface-soft)}.cap-breakdown-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.cap-breakdown-name{font-weight:600}.cap-bug-list{margin:0;padding:0;list-style:none}.cap-bug-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--color-border-soft);min-width:0}.cap-bug-row:last-child{border-bottom:0}.cap-bug-main{flex:1 1 240px;min-width:0}.cap-bug-link{font-weight:500;overflow-wrap:anywhere}.cap-bug-link:hover{text-decoration:underline}.cap-bug-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.cap-bug-no{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-bug-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin-top:3px;color:var(--color-text-muted);font-size:12px}.cap-bug-meta .badge{padding:0 8px;font-size:11px}.cap-bug-share{display:flex;flex-direction:column;align-items:flex-end;color:var(--color-text-muted);font-size:12px;text-align:right}.cap-bug-share b{color:var(--color-text);font-size:13px;font-weight:600}.cap-bug-share b.cap-late{color:var(--cap-over-text)}.cap-muted-strong{color:#b45309;font-weight:500}.cap-card{min-width:0;padding:14px 16px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface)}.cap-card-head{justify-content:space-between;gap:8px}.cap-card-head,.cap-card-title{display:flex;align-items:center}.cap-card-title{flex-wrap:wrap;gap:6px;margin:0;font-size:15px}.cap-count{padding:1px 8px;border-radius:999px;background:var(--color-surface-soft);font-weight:500}.cap-card-hint,.cap-count{color:var(--color-text-muted);font-size:12px}.cap-card-hint{margin:6px 0 4px}.cap-ok{margin:10px 0 0;color:var(--color-success)}.cap-ok,.cap-subhead{display:flex;align-items:center;gap:6px}.cap-subhead{flex-wrap:wrap;margin:18px 0 4px;padding-top:12px;border-top:1px solid var(--color-border-soft);font-size:14px;font-weight:600}.cap-table-scroll{max-width:100%;overflow-x:auto;margin-top:6px}.cap-as-table{min-width:680px}.cap-as-table th,.cap-est-table th{position:static}.cap-as-table td{vertical-align:top}.cap-as-table tbody tr,.cap-as-table tbody tr:hover,.cap-est-table tbody tr,.cap-est-table tbody tr:hover{cursor:default}.cap-as-bug{min-width:220px;max-width:380px}.cap-as-name{font-weight:600;white-space:nowrap}.cap-as-reason{color:var(--color-text-muted);font-size:12px}.cap-as-btn{height:34px;padding:0 12px;white-space:nowrap}.cap-as-btn:disabled{opacity:.55;cursor:not-allowed}.cap-est-notice{margin:8px 0 0}.cap-est-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px}.cap-est-search{position:relative;flex:0 1 280px;min-width:0;color:var(--color-text-soft)}.cap-est-search svg{position:absolute;top:50%;left:10px;transform:translateY(-50%);pointer-events:none}.cap-est-search .input{height:36px;padding-left:32px;font-size:13px}.cap-est-select.select{flex:0 1 200px;width:auto;min-width:0;height:36px;padding:0 8px;font-size:13px}.cap-est-shown{color:var(--color-text-muted)}.cap-est-clear,.cap-est-shown{font-size:12px;white-space:nowrap}.cap-est-table{min-width:880px}.cap-est-table.is-readonly{min-width:720px}.cap-est-table.cap-over-table{min-width:980px}.cap-est-table.cap-over-table.is-readonly{min-width:780px}.cap-est-table td{vertical-align:middle}.cap-sort-btn{display:inline-flex;align-items:center;gap:4px;margin:-2px -4px;padding:2px 4px;border:0;border-radius:4px;background:none;color:inherit;font:inherit;white-space:nowrap;cursor:pointer}.cap-sort-btn:hover{background:var(--color-surface-soft);color:var(--color-text)}.cap-sort-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.cap-sort-icon{flex:0 0 auto;color:var(--color-text-soft)}.cap-sort-btn.is-active{color:var(--color-text)}.cap-sort-btn.is-active .cap-sort-icon{color:var(--color-primary)}.cap-est-no{width:1%;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-est-title{min-width:200px;max-width:340px}.cap-est-nowrap{white-space:nowrap}.cap-est-people{min-width:120px;max-width:200px}.cap-est-num{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cap-est-empty{padding:16px 12px;color:var(--color-text-muted);text-align:center}.cap-est-cell{width:1%;white-space:nowrap}.cap-est-form{display:flex;flex-direction:column;gap:2px}.cap-est-fields{display:flex;align-items:center;gap:6px}.cap-est-field{display:inline-flex;align-items:center;gap:3px;color:var(--color-text-muted);font-size:12px}.cap-est-field .input{width:56px;height:32px;padding:0 6px;font-size:13px}.cap-est-form.is-saving .input{opacity:.6}.cap-est-save{width:34px;height:32px;padding:0}.cap-est-save:disabled{opacity:.45;cursor:not-allowed}.cap-est-note{display:inline-flex;align-items:center;gap:3px;max-width:220px;color:var(--color-text-soft);font-size:11px;line-height:1.35;white-space:normal}.cap-est-note.is-error{color:var(--color-danger)}.cap-est-note.is-ok{color:var(--color-success)}@media (max-width:640px){.cap-name{min-width:116px;max-width:140px}.cap-cell{min-width:92px}.cap-bug-share{align-items:flex-start;text-align:left}.cap-est-search{flex:1 1 100%}.cap-est-select.select{flex:1 1}.cap-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cap-kpi{padding:10px}.cap-kpi-value{font-size:20px}.cap-controls{width:100%}.cap-seg{flex:1 1 auto;min-width:0}.cap-seg-btn{flex:1 1;min-width:0;padding:0 6px;overflow:hidden;text-overflow:ellipsis}.cap-refresh{flex:0 0 40px;width:40px;padding:0}}@media (max-width:370px){.cap-seg-unit{display:none}}@media (prefers-reduced-motion:reduce){.cap-spin{animation:none}.cap-body{transition:none}}.effort-box{display:flex;flex-direction:column;gap:6px}.effort-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;font-size:13px}.effort-summary b{font-weight:600}.effort-none{color:var(--color-text-muted);font-weight:500}.effort-bar{height:6px;border-radius:999px;background:var(--color-border-soft);overflow:hidden}.effort-bar-fill{height:100%;border-radius:inherit;background:var(--color-primary)}.effort-bar.is-over .effort-bar-fill{background:var(--color-danger)}.effort-over{display:inline-flex;align-items:center;gap:4px;color:var(--cap-over-text);font-size:12px;font-weight:600}.effort-byuser{color:var(--color-text-muted);font-size:12px}.effort-form{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}.effort-field{display:inline-flex;align-items:center;gap:4px;color:var(--color-text-muted);font-size:13px}.effort-field .input{width:72px;height:34px;padding:0 8px}.effort-clear,.effort-save{height:34px;padding:0 12px;font-size:13px}.effort-clear:disabled,.effort-save:disabled{opacity:.55;cursor:not-allowed}.effort-hint{color:var(--color-text-soft)}.effort-error,.effort-hint{flex-basis:100%;font-size:12px}.effort-error{color:var(--color-danger)}.effort-link{padding:0;border:0;background:none;color:var(--color-primary);font:inherit;text-decoration:underline;cursor:pointer}