.csv-import-container{margin:0 auto;max-width:800px;padding:2rem}.csv-import-header{margin-bottom:2rem;text-align:center}.csv-import-header h2{color:#2c3e50;font-size:2rem;margin-bottom:.5rem}.csv-import-description{color:#7f8c8d;font-size:1rem}.import-type-selector{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.type-button{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;max-width:200px;padding:1rem;transition:all .3s ease}.type-button:hover{background:#f8f9fa;border-color:#3498db}.type-button.active{background:#3498db;border-color:#3498db;color:#fff}.class-selector{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.class-selector label{color:#2c3e50;display:block;font-weight:600;margin-bottom:.5rem}.class-select{background:#fff;border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.dropzone{background:#f7fafc;border:3px dashed #cbd5e0;border-radius:12px;cursor:pointer;margin-bottom:1.5rem;padding:3rem 2rem;text-align:center;transition:all .3s ease}.dropzone:hover{background:#edf2f7;border-color:#3498db}.dropzone.active{background:#e6f2ff;border-color:#3498db;transform:scale(1.02)}.dropzone.has-file{background:#e8f8f0;border-color:#2ecc71}.dropzone-content{pointer-events:none}.dropzone-icon{color:#9ca3af;display:flex;justify-content:center;margin-bottom:1rem}.dropzone-text{color:#2c3e50;font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.dropzone-subtext{color:#7f8c8d;margin-bottom:1rem}.dropzone-formats{background:#fff;border-radius:20px;color:#95a5a6;display:inline-block;font-size:.875rem;padding:.5rem 1rem}.file-info{background:#fff;border-radius:8px;gap:1rem;padding:1rem;pointer-events:none}.file-icon,.file-info{align-items:center;display:flex}.file-icon{color:#6b7280}.file-details{flex:1 1;text-align:left}.file-name{color:#2c3e50;font-weight:600;margin-bottom:.25rem}.file-size{color:#7f8c8d;font-size:.875rem}.file-remove{align-items:center;background:#e74c3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.25rem;height:32px;justify-content:center;pointer-events:all;transition:background .3s ease;width:32px}.file-remove:hover{background:#c0392b}.csv-format-hint{background:#fff5e6;border:1px solid #ffe0b3;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.csv-format-hint h4{color:#e67e22;margin-bottom:.75rem;margin-top:0}.format-example code{background:#fff;border-radius:4px;display:block;font-family:Courier New,monospace;font-size:.875rem;margin-bottom:.5rem;overflow-x:auto;padding:.75rem}.format-note{color:#95a5a6;font-size:.875rem;margin:0}.alert{align-items:flex-start;border-radius:8px;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.alert-icon{align-items:center;display:flex;flex-shrink:0}.alert-message{flex:1 1}.alert-error{background:#fee;border:1px solid #fcc;color:#c33}.alert-success{background:#efe;border:1px solid #cfc;color:#363}.result-details{width:100%}.result-stats{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:1rem 0}.stat-item{background:#fff;border-left:4px solid #3498db;border-radius:6px;padding:.75rem}.stat-item.success{border-left-color:#2ecc71}.stat-item.warning{border-left-color:#f39c12}.stat-item.error{border-left-color:#e74c3c}.stat-item.info{border-left-color:#9b59b6}.stat-label{color:#7f8c8d;display:block;font-size:.875rem;margin-bottom:.25rem}.stat-value{color:#2c3e50;display:block;font-size:1.5rem}.new-users-info{background:#e8f4fd;border-radius:6px;margin-top:1rem;padding:1rem}.new-users-info p{color:#2980b9;font-weight:600;margin:0 0 .5rem}.new-users-list{color:#34495e;font-size:.875rem;margin:0;padding-left:1.5rem}.new-users-list li{margin-bottom:.25rem}.error-details{background:#fff5f5;border-radius:6px;margin-top:1rem;padding:1rem}.error-title{color:#c0392b;font-weight:600;margin:0 0 .5rem}.error-list{color:#e74c3c;font-size:.875rem;margin:0;padding-left:1.5rem}.error-list li{margin-bottom:.25rem}.reload-notice{background:#fff;border-radius:6px;color:#7f8c8d;font-size:.875rem;margin-top:1rem;padding:.75rem;text-align:center}.upload-actions{display:flex;gap:1rem;justify-content:center}.btn-clear,.btn-upload{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:1rem 2rem;transition:all .3s ease}.btn-upload{background:#3498db;color:#fff;flex:1 1;max-width:300px}.btn-upload:hover:not(:disabled){background:#2980b9;box-shadow:0 4px 12px #3498db4d;transform:translateY(-2px)}.btn-upload:disabled{background:#bdc3c7;cursor:not-allowed}.btn-clear{background:#95a5a6;color:#fff}.btn-clear:hover{background:#7f8c8d}.spinner{animation:spin .8s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.csv-import-container{padding:1rem}.dropzone{padding:2rem 1rem}.result-stats{grid-template-columns:1fr 1fr}.upload-actions{flex-direction:column}.btn-clear,.btn-upload{max-width:100%}}.manaba-notice{background:#f1f7ff;border:1px solid #cfe2ff;border-radius:8px;color:#33475b;font-size:.9rem;line-height:1.7;margin:12px 0;padding:12px 16px}.manaba-notice p{margin:0 0 6px}.manaba-notice p:last-child{margin-bottom:0}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:17px}body{background:#f4f6f9;color:#2c3e50;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.app-main{min-width:0}.app-main,.sidebar{display:flex;flex-direction:column}.sidebar{align-self:start;background:linear-gradient(180deg,#1e3a8a,#2563eb);box-shadow:2px 0 12px #0000001f;color:#fff;height:100vh;position:-webkit-sticky;position:sticky;top:0}.sidebar-header{border-bottom:1px solid #ffffff1f;gap:.75rem;padding:1.25rem 1rem}.sidebar-header,.sidebar-logo{align-items:center;display:flex}.sidebar-logo{line-height:1}.sidebar-title{color:#fff;font-size:1.1rem;font-weight:700}.sidebar-subtitle{color:#ffffffb3;font-size:.7rem;letter-spacing:.04em}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:.15rem;overflow-y:auto;padding:.75rem .5rem}.sidebar-nav-item{align-items:center;border-radius:8px;color:#ffffffd9;cursor:pointer;display:flex;font-size:.92rem;font-weight:500;gap:.75rem;padding:.7rem .85rem;transition:background .15s,color .15s}.sidebar-nav-item:hover{background:#ffffff1a;color:#fff}.sidebar-nav-item.active{background:#ffffff2e;color:#fff;font-weight:600}.sidebar-nav-icon{align-items:center;display:flex;flex-shrink:0;justify-content:center;width:1.4rem}.sidebar-nav-label{flex:1 1}.sidebar-nav-row{align-items:center;display:flex}.sidebar-nav-row .sidebar-nav-item{flex:1 1;min-width:0}.sidebar-nav-toggle{background:none;border:none;border-radius:6px;color:#ffffffbf;cursor:pointer;flex-shrink:0;line-height:1;padding:.5rem}.sidebar-nav-toggle:hover{background:#ffffff1f;color:#fff}.sidebar-nav-caret{display:inline-block;font-size:.8rem;transform:translateY(2px);transition:transform .15s}.sidebar-nav-caret.collapsed{transform:translateY(-2px) rotate(180deg)}.sidebar-subnav{border-left:2px solid #ffffff2e;display:flex;flex-direction:column;margin:.15rem 0 .35rem 1.5rem;padding-left:.6rem}.sidebar-subnav-item{border-radius:6px;color:#ffffffb3;display:block;font-size:.86rem;padding:.45rem .7rem;text-decoration:none;transition:background .15s,color .15s}.sidebar-subnav-item:hover{background:#ffffff14;color:#fff}.sidebar-subnav-item.active{background:#ffffff29;color:#fff;font-weight:600}.sidebar-footer{border-top:1px solid #ffffff1f;color:#ffffff80;font-size:.75rem;padding:.75rem 1rem;text-align:center}.sidebar-legal{display:block;margin-bottom:.35rem}.sidebar-legal a{color:#ffffffa6;text-decoration:underline}.sidebar-legal a:hover{color:#ffffffe6}.sidebar-legal-sep{margin:0 .25rem}.topbar{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000a;display:flex;gap:1rem;height:60px;padding:0 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:50}.topbar-title{color:#1e3a8a;flex:1 1;font-size:1.15rem;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-right{align-items:center;display:flex;gap:.85rem}.topbar-role{border-radius:20px;font-size:.75rem;font-weight:700;padding:.2rem .7rem;white-space:nowrap}.topbar-user{align-items:center;border-radius:10px;color:inherit;cursor:pointer;display:flex;gap:.5rem;padding:.3rem .6rem .3rem .4rem;text-decoration:none;transition:background .15s,box-shadow .15s}.topbar-user:hover{background:#f3f4f6;box-shadow:0 1px 3px #0000000f}.topbar-avatar{align-items:center;background:linear-gradient(135deg,#2563eb,#1e40af);border-radius:50%;color:#fff;display:flex;font-size:.95rem;font-weight:700;height:34px;justify-content:center;width:34px}.topbar-userinfo{line-height:1.2}.topbar-username{color:#2c3e50;font-size:.88rem;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-userid{color:#888;font-size:.72rem}.topbar-devmode{background:#0000;border:1px solid #8b5cf6;border-radius:999px;color:#8b5cf6;cursor:pointer;font-size:.75rem;font-weight:600;padding:.2rem .6rem;white-space:nowrap}.topbar-devmode.on{background:#8b5cf6;color:#fff}.topbar-devmode:disabled{cursor:wait;opacity:.6}.topbar-devbanner{background:#ede9fe;border-bottom:1px solid #ddd6fe;color:#5b21b6;font-size:.8rem;padding:.35rem 1rem}.topbar-logout{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#555;cursor:pointer;font-size:.85rem;padding:.4rem .85rem;transition:background .15s,color .15s}.topbar-logout:hover{background:#ef4444;border-color:#ef4444;color:#fff}.topbar-icon-btn{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:10px;color:#374151;cursor:pointer;display:inline-flex;font-size:1.05rem;height:38px;justify-content:center;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s;width:38px}.topbar-icon-btn:hover{background:#e0e7ff;box-shadow:0 1px 3px #0000000f;color:#1e3a8a}.topbar-icon-btn.active{background:#dbeafe;border-color:#93c5fd;color:#1e3a8a}.main-content{flex:1 1;min-height:0;overflow-y:auto;padding:1.5rem 0}.page-container{margin:0 auto;max-width:1400px;padding:0 1.5rem}.page-container.page-wide{max-width:2400px;padding:0 1.25rem}.page-header{margin-bottom:1.5rem}.page-header h1{color:#1e3a8a;font-size:1.75rem;font-weight:700;margin-bottom:.35rem}.page-header p{color:#666}.card{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000012;margin-bottom:1.25rem;padding:1.5rem}.card-header{border-bottom:2px solid #f0f0f0;margin-bottom:1rem;padding-bottom:.75rem}.card-header h2{color:#1e3a8a;font-size:1.15rem;font-weight:700}button,input,select,textarea{font-family:inherit}.drawer-backdrop,.mobile-menu-btn{display:none}@media (max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{box-shadow:4px 0 24px #00000040;height:100vh;height:100dvh;left:0;max-width:82vw;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;width:270px;z-index:300}.sidebar.drawer-open{transform:translateX(0)}.drawer-backdrop{background:#0006;display:block;inset:0;position:fixed;z-index:250}.mobile-menu-btn{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:10px;color:#1e3a8a;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:1.25rem;height:42px;justify-content:center;width:42px}.topbar-userinfo{display:none}.sidebar-nav-item{font-size:1rem;padding:.85rem 1rem}}.mobile-tabbar{display:none}@media (max-width:800px){.mobile-tabbar{background:#fff;border-top:1px solid #e5e7eb;bottom:0;box-shadow:0 -2px 10px #0000000f;display:flex;left:0;padding-bottom:env(safe-area-inset-bottom,0);position:fixed;right:0;z-index:200}.mobile-tab{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:.68rem;font-weight:600;gap:2px;justify-content:center;min-height:56px;padding:.5rem 0 .45rem;text-decoration:none}.mobile-tab.active{color:#1e3a8a}.mobile-tab-icon{display:flex;line-height:1}.mobile-tab-label{max-width:100%;overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.main-content{padding-bottom:calc(70px + env(safe-area-inset-bottom, 0px))}.page-container{display:flex;flex-direction:column}.page-container>*{min-width:0}.page-header{order:-2}.quick-actions{order:-1}.card{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table td,.data-table th{padding:.5rem .6rem}.quick-title{font-size:1rem}.quick-icon{font-size:1.3rem;height:40px;width:40px}.btn-danger,.btn-primary,.btn-secondary{font-size:1rem}.card-header h2{font-size:1.15rem}.tab-btn{font-size:.95rem;padding:.6rem 1rem}}@media (max-width:480px){.topbar{gap:.5rem;height:54px;padding:0 .75rem}.topbar-title{font-size:1rem}.topbar-role{display:none}.topbar-logout{font-size:.8rem;padding:.4rem .6rem;white-space:nowrap}.topbar-icon-btn{height:34px;width:34px}.topbar-avatar{font-size:.85rem;height:30px;width:30px}.main-content{padding:1rem 0 calc(70px + env(safe-area-inset-bottom, 0px))}.page-container{padding:0 .85rem}.page-header h1{font-size:1.35rem}.card{border-radius:10px;padding:1rem}.stats-grid{gap:.6rem;grid-template-columns:repeat(2,1fr)}.stat-card{padding:.85rem 1rem}.stat-value{font-size:1.5rem}.quick-actions{grid-template-columns:repeat(2,1fr)}.otp-code{font-size:2.6rem;letter-spacing:.25rem}}@media (max-width:800px){.form-row input,.form-row select,.form-row textarea{font-size:16px}.btn-danger,.btn-primary,.btn-secondary,.sidebar-nav-item{min-height:44px}}.android-banner{align-items:center;background:linear-gradient(135deg,#eff6ff,#e0e7ff);border:1px solid #bfdbfe;border-radius:12px;display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;padding:.9rem 1.1rem}.android-banner-icon{align-items:center;color:#1e3a8a;display:flex;flex-shrink:0}.android-banner-text{flex:1 1;min-width:180px}.android-banner-text strong{color:#1e3a8a;display:block;font-size:.95rem}.android-banner-text p{color:#3b5bab;font-size:.82rem;margin:0}.android-banner-actions{display:flex;flex-shrink:0;gap:.5rem}.android-banner-link{align-items:center;display:inline-flex;text-decoration:none;white-space:nowrap}@media (max-width:480px){.android-banner-actions{width:100%}.android-banner-actions .btn-primary,.android-banner-actions .btn-secondary{flex:1 1;justify-content:center;text-align:center}}.navbar{display:none}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1.25rem}.stat-card{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000f;padding:1.1rem 1.25rem}.stat-label{color:#6b7280;font-size:.82rem;margin-bottom:.4rem}.stat-value{font-size:1.85rem;font-weight:700;line-height:1.1}.stat-unit{color:#9ca3af;font-size:.78rem;margin-top:.2rem}.quick-actions{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1.5rem}.quick-card{align-items:center;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000d;color:inherit;cursor:pointer;display:flex;flex-direction:row;gap:.6rem;padding:.7rem .85rem;text-decoration:none;transition:transform .15s,box-shadow .15s}.quick-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.quick-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:1.1rem;height:34px;justify-content:center;width:34px}.quick-title{color:#1e3a8a;font-size:.92rem;font-weight:700;line-height:1.2}.quick-desc{color:#6b7280;display:none;font-size:.78rem}.quick-actions--large{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.quick-actions--large .quick-card{align-items:stretch;border-radius:12px;flex-direction:column;gap:.4rem;padding:1.25rem}.quick-actions--large .quick-icon{border-radius:12px;font-size:1.6rem;height:48px;width:48px}.quick-actions--large .quick-title{font-size:1.05rem}.quick-actions--large .quick-desc{display:block}.btn-danger,.btn-primary,.btn-secondary{border:1px solid #0000;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;padding:.55rem 1.1rem;transition:background .15s,transform .05s}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.btn-secondary{background:#f3f4f6;border-color:#e5e7eb;color:#374151}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.btn-danger:hover:not(:disabled){background:#ef4444;color:#fff}.btn-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.85rem;text-decoration:none}.btn-link:hover{text-decoration:underline}.form-row{margin-bottom:1rem}.form-row label{color:#374151;display:block;font-size:.82rem;font-weight:600;margin-bottom:.35rem}.form-row input[type=date],.form-row input[type=email],.form-row input[type=number],.form-row input[type=password],.form-row input[type=text],.form-row input[type=time],.form-row select,.form-row textarea{background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;box-sizing:border-box;font-size:.95rem;outline:none;padding:.55rem .85rem;transition:border-color .15s;width:100%}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:#2563eb}.form-row small{display:block;font-size:.78rem;margin-top:.25rem}.tab-bar{background:#f3f4f6;border-radius:10px;display:flex;gap:.4rem;margin-bottom:1rem;overflow-x:auto;padding:.3rem}.tab-btn{background:#0000;border:none;border-radius:7px;color:#6b7280;cursor:pointer;font-size:.88rem;font-weight:600;padding:.5rem 1rem;transition:all .15s;white-space:nowrap}.tab-btn:hover{color:#1e3a8a}.tab-btn.active{background:#fff;box-shadow:0 1px 3px #00000014;color:#1e3a8a}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{font-feature-settings:"tnum";border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums;line-height:1.5;width:100%}.data-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;font-size:.86rem;font-weight:700;padding:.6rem .85rem;text-align:left}.data-table td{border-bottom:1px solid #f0f0f0;padding:.65rem .85rem;vertical-align:middle}.data-table tr:hover{background:#f9fafb}.progress-bar{background:#f3f4f6;border-radius:999px;height:8px;overflow:hidden;width:100%}.progress-fill{border-radius:999px;height:100%;transition:width .3s}.upcoming-list{display:flex;flex-direction:column;gap:.5rem}.upcoming-item{align-items:center;background:#f9fafb;border-left:4px solid #3b82f6;border-radius:8px;display:flex;gap:1rem;padding:.7rem 1rem}.upcoming-day{color:#1e3a8a;flex-shrink:0;font-weight:700;width:4.5rem}.upcoming-info{flex:1 1}.upcoming-name{color:#2c3e50;font-weight:600}.upcoming-meta{color:#6b7280;font-size:.82rem}.otp-display{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:2px solid #2563eb;text-align:center}.otp-class{color:#1e3a8a;font-size:1.1rem;font-weight:700;margin-bottom:1rem}.otp-code{color:#1e3a8a;font-family:Courier New,monospace;font-size:4rem;font-weight:800;letter-spacing:.4rem;padding:1rem 0;text-shadow:0 2px 4px #0000000d}.otp-timer{color:#4b5563;font-size:1.1rem;margin-top:.5rem}.class-subnav-mobile{display:none}@media (max-width:800px){.class-subnav-mobile{-webkit-overflow-scrolling:touch;display:flex;gap:.4rem;margin-bottom:.8rem;overflow-x:auto;padding-bottom:.4rem}.class-subnav-chip{background:#fff;border:1px solid #e5e7eb;border-radius:999px;color:#374151;flex:0 0 auto;font-size:.85rem;padding:.4rem .8rem;text-decoration:none;white-space:nowrap}.class-subnav-chip.active{background:#eef2ff;border-color:#c7d2fe;color:#3730a3;font-weight:700}}.export-layout{align-items:flex-start;display:flex;gap:1rem}.export-preview{flex:1 1 420px;min-width:0;order:1}.export-settings{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;flex:0 0 275px;order:2;padding:.9rem}.export-preview.is-full{background:#fff;inset:0;overflow:auto;padding:.8rem 1.2rem;position:fixed;z-index:2000}.export-preview.is-full .sheet-tabs-body{max-height:calc(100vh - 150px)}@media (max-width:800px){.export-layout{flex-wrap:wrap}.export-settings{flex:1 1 100%;order:0}.export-preview{flex:1 1 100%;order:1}}.sheet-tabs,.sheet-topbar-slot{min-height:2.2rem}.sheet-tabs{align-items:flex-end;border-bottom:2px solid #1e3a8a;box-sizing:border-box;display:flex;gap:.15rem;overflow-x:auto;padding:.25rem .1rem 0;scrollbar-width:thin}.sheet-tab{background:#f3f4f6;border:1px solid #e5e7eb;border-bottom:none;border-radius:8px 8px 0 0;bottom:-2px;color:#374151;cursor:pointer;flex:0 0 auto;font-size:.88rem;max-width:15rem;overflow:hidden;padding:.38rem .85rem;position:relative;text-overflow:ellipsis;white-space:nowrap}.sheet-tab:hover{background:#e5e7eb}.sheet-tab.active{background:#1e3a8a;border-color:#1e3a8a;color:#fff;font-weight:700}.sheet-tab-group{color:#9ca3af;flex:0 0 auto;font-size:.7rem;padding:0 .4rem .4rem .5rem;white-space:nowrap}.sheet-frame{align-items:stretch;display:flex}.sheet-tabs-v{border-right:2px solid #1e3a8a;display:flex;flex:0 0 auto;flex-direction:column;gap:.15rem;max-width:14rem;padding:.25rem 0}.sheet-tab-v{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px 0 0 8px;border-right:none;color:#374151;cursor:pointer;font-size:.88rem;line-height:1.35;overflow:hidden;padding:.48rem .75rem;position:relative;right:-2px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.sheet-tab-v:hover{background:#e5e7eb}.sheet-tab-v.active{background:#1e3a8a;border-color:#1e3a8a;color:#fff;font-weight:700}.sheet-main{flex:1 1 auto;min-width:0}.sheet-tabs-body{border:1px solid #e5e7eb;border-radius:0 8px 8px 0;max-height:calc(100vh - 240px);min-height:320px;overflow:auto}@media (max-height:700px){.sheet-tabs-body{max-height:62vh;min-height:220px}}.sheet-frame.under-bar .sheet-tabs-body{border-radius:0 0 8px 0;border-top:none}.sheet-frame.under-bar .sheet-tabs-v{padding-top:0}.sheet-frame.no-side .sheet-tabs-body{border-radius:0 0 8px 8px}.sheet-top-scroll{border:1px solid #e5e7eb;border-bottom:none;height:14px;max-width:100%;overflow-x:auto;overflow-y:hidden}.sheet-top-scroll-inner{height:1px}.font-step{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:999px;display:inline-flex;gap:.25rem;padding:.1rem .35rem}.font-step button{background:#0000;border:none;border-radius:999px;color:#374151;cursor:pointer;font-size:.95rem;line-height:1;padding:.2rem .35rem}.font-step button:hover:not(:disabled){background:#f3f4f6}.font-step button:disabled{color:#d1d5db;cursor:default}.font-step span{color:#4b5563;font-size:.78rem;min-width:2.4rem;text-align:center}@media (max-width:700px){.sheet-frame{flex-direction:column}.sheet-tabs-v{border-bottom:2px solid #1e3a8a;border-right:none;flex-direction:row;max-width:100%;overflow-x:auto;padding:.25rem 0 0}.sheet-tab-v{border:1px solid #e5e7eb;border-bottom:none;border-radius:8px 8px 0 0;bottom:-2px;flex:0 0 auto;right:0}.sheet-frame.under-bar .sheet-tabs-body,.sheet-tabs-body{border-radius:0 0 8px 8px;border-top:none}}.data-table td.pin-cell{background:#fff}.data-table th.pin-cell,.data-table tr:hover td.pin-cell{background:#f9fafb}.dash-alert-card{border-top:3px solid #dc2626}.dash-alert-card.warn{border-top-color:#d97706}.dash-alert-card.note{border-top-color:#94a3b8}.dash-alert-card.is-clear{border-top-color:#cbd5e1}.dash-alert-clear{color:#6b7280;font-size:.9rem}.dash-count{font-feature-settings:"tnum";background:#dc2626;border-radius:20px;color:#fff;display:inline-block;font-size:.72rem;font-variant-numeric:tabular-nums;font-weight:700;padding:.1rem .55rem;vertical-align:2px}.dash-count.warn{background:#d97706}.dash-count.note{background:#94a3b8}.dash-alert-wrap+.dash-alert-wrap{margin-top:.3rem}.dash-alert{grid-gap:.75rem;align-items:center;border:1px solid #0000;border-radius:9px;color:inherit;display:grid;gap:.75rem;grid-template-columns:auto 1fr auto;padding:.7rem .75rem;text-decoration:none}a.dash-alert:hover{background:#f8fafc;border-color:#e5eaf2}.dash-sev{border-radius:4px;flex:none;height:34px;width:8px}.dash-sev.crit{background:#dc2626}.dash-sev.warn{background:#d97706}.dash-sev.note{background:#94a3b8}.dash-alert-body{min-width:0}.dash-alert-t{display:block;font-size:.95rem;font-weight:700;line-height:1.4}.dash-alert-m{color:#6b7280;display:block;font-size:.82rem;line-height:1.5}.dash-alert-go{color:#2563eb;font-size:.82rem;font-weight:600;white-space:nowrap}.dash-detail{margin:.15rem 0 .35rem 1.55rem}.dash-detail>summary{color:#2563eb;cursor:pointer;font-size:.82rem;list-style:none;padding:.25rem 0}.dash-detail>summary::-webkit-details-marker{display:none}.dash-detail>summary:before{content:"▸ "}.dash-detail[open]>summary:before{content:"▾ "}.dash-detail-body{padding-top:.35rem}.dash-stats{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:.9rem}.dash-stat{background:#fff;border:1px solid #e7ecf3;border-radius:10px;min-width:0;padding:.75rem .9rem}.dash-stat.hero{background:#fbfcfe;border-color:#cfdcf2;grid-column:span 2}.dash-stat-l{color:#8a93a3;font-size:.76rem;margin-bottom:.15rem}.dash-stat-note{color:#9ca3af;font-size:.74rem;line-height:1.45;margin-top:.25rem}.dash-stat-v{font-feature-settings:"tnum";color:#334155;font-size:1.35rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.15}.dash-stat-v small{color:#9ca3af;font-size:.75rem;font-weight:500;margin-left:.15rem}.dash-stat.hero .dash-stat-v{font-size:1.8rem}.dash-spark{display:block;height:auto;margin-top:.35rem;max-width:100%}.dash-donut{flex:none}.dash-qa{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1.25rem}.dash-qa-btn{align-items:center;background:#fff;border:1px solid #e0e6ef;border-radius:10px;color:#334155;display:flex;gap:.6rem;min-height:52px;padding:.6rem .85rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .05s}.dash-qa-btn:hover{border-color:#2563eb;box-shadow:0 2px 10px #2563eb1f}.dash-qa-btn:active{transform:translateY(1px)}.dash-qa-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.dash-qa-icon{align-items:center;background:#eff4fd;border-radius:8px;color:#1e3a8a;display:flex;flex:none;height:34px;justify-content:center;width:34px}.dash-qa-label{font-size:.9rem;font-weight:600;line-height:1.25;overflow-wrap:anywhere}.dash-fold{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000012;margin-bottom:1.25rem;overflow:hidden}.dash-fold>summary{align-items:center;color:#1e3a8a;cursor:pointer;display:flex;font-size:1.15rem;font-weight:700;gap:.5rem;list-style:none;min-height:44px;padding:.9rem 1.5rem}.dash-fold>summary::-webkit-details-marker{display:none}.dash-fold>summary:after{color:#94a3b8;content:"▾";font-size:.8rem;margin-left:auto}.dash-fold[open]>summary{border-bottom:2px solid #f0f0f0}.dash-fold[open]>summary:after{content:"▴"}.dash-fold>summary .dash-fold-c{font-feature-settings:"tnum";color:#8a93a3;font-size:.8rem;font-variant-numeric:tabular-nums;font-weight:500}.dash-fold-body{padding:1rem 1.5rem 1.25rem}.dash-risk{background:#fff;border:1px solid #f1d4d4;border-left:4px solid #dc2626;border-radius:11px;padding:.85rem 1rem}.dash-risk+.dash-risk{margin-top:.5rem}.dash-risk.w{border-color:#f5e3bd #f5e3bd #f5e3bd #d97706}.dash-risk-top{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem}.dash-risk-name{font-size:1rem;font-weight:700}.dash-risk-rate{font-feature-settings:"tnum";color:#dc2626;font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:700;margin-left:auto}.dash-risk.w .dash-risk-rate{color:#d97706}.dash-risk-msg{color:#4b5563;font-size:.85rem;line-height:1.6;margin-top:.35rem}.dash-risk-msg b{color:#1f2937}.dash-bar{background:#eef1f6;border-radius:3px;height:6px;margin-top:.5rem;overflow:hidden}.dash-bar span{border-radius:3px;display:block;height:100%}.dash-change{align-items:center;background:#fff7f7;border:1px solid #f6dede;border-radius:9px;display:flex;flex-wrap:wrap;gap:.7rem;padding:.6rem .75rem}.dash-change+.dash-change{margin-top:.35rem}.dash-change.sub{background:#fffcf2;border-color:#f6ecd0}.dash-change-when{font-feature-settings:"tnum";color:#6b7280;font-size:.8rem;font-variant-numeric:tabular-nums;font-weight:700;min-width:5.5rem}.dash-change-what{font-size:.92rem}.dash-ring-row{align-items:center;display:flex;flex-wrap:wrap;gap:1.2rem}.dash-ring-legend{grid-gap:.25rem;color:#4b5563;display:grid;font-size:.88rem;gap:.25rem}.dash-ring-legend b{font-feature-settings:"tnum";color:#334155;font-size:1.05rem;font-variant-numeric:tabular-nums}.dash-ring-note{color:#9ca3af;font-size:.78rem}.page-container.dash-priority{display:flex;flex-direction:column}.page-container.dash-priority>*{min-width:0;order:0}.page-container.dash-priority>.page-header{order:-1}.dash-strip{grid-gap:.8rem;align-items:center;background:#fff;border:1px solid #dbe4f0;border-left:4px solid #2563eb;border-radius:10px;color:inherit;display:grid;gap:.8rem;grid-template-columns:auto 1fr auto;margin-bottom:1.25rem;min-height:56px;padding:.85rem 1rem;text-decoration:none;transition:border-color .15s,box-shadow .15s}.dash-strip:hover{box-shadow:0 2px 12px #2563eb24}.dash-strip:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.dash-strip.is-live{background:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #16a34a}.dash-strip-icon{align-items:center;background:#eff4fd;border-radius:8px;color:#1e3a8a;display:flex;flex:none;height:34px;justify-content:center;width:34px}.dash-strip.is-live .dash-strip-icon{background:#dcfce7}.dash-pulse{animation:dash-pulse 2s infinite;background:#16a34a;border-radius:50%;box-shadow:0 0 0 0 #16a34ab3;height:10px;width:10px}@keyframes dash-pulse{70%{box-shadow:0 0 0 9px #16a34a00}to{box-shadow:0 0 0 0 #16a34a00}}@media (prefers-reduced-motion:reduce){.dash-pulse{animation:none}}.dash-strip-body{min-width:0}.dash-strip-t{display:block;font-size:.98rem;font-weight:700;line-height:1.35}.dash-strip-m{color:#6b7280;display:block;font-size:.82rem;line-height:1.45}.dash-strip-go{color:#2563eb;font-size:.85rem;font-weight:600;white-space:nowrap}.dash-strip.is-live .dash-strip-go{color:#15803d}@media (max-width:800px){.dash-fold>summary{padding:.9rem 1rem}.dash-fold-body{padding:.9rem 1rem 1rem}.dash-alert{grid-template-columns:auto 1fr}.dash-alert-go{grid-column:2;justify-self:start}.dash-strip{grid-template-columns:auto 1fr}.dash-strip-go{grid-column:2;justify-self:start}}@media (max-width:480px){.dash-qa,.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-qa{gap:.45rem}.dash-qa-label{font-size:.85rem}.dash-stat.hero{grid-column:span 2}.dash-risk-rate{font-size:1.15rem}}.app-shell-bare{background:#f3f4f6}.app-shell-bare,.app-shell-bare .bare-main{min-height:100vh}.edge-peek{bottom:0;left:0;position:fixed;top:0;width:10px;z-index:4900}.edge-peek:after{background:#93c5fd;border-radius:0 4px 4px 0;content:"";height:64px;left:0;margin-top:-32px;opacity:.55;position:absolute;top:50%;transition:opacity .15s,width .15s;width:4px}.edge-peek:hover:after{opacity:1;width:6px}@media (hover:none),(pointer:coarse){.edge-peek{display:none}}.app-shell-bare .sidebar.sidebar-peek{box-shadow:6px 0 28px #00000047;height:100vh;height:100dvh;left:0;max-width:82vw;position:fixed;top:0;transform:translateX(-100%);transition:transform .2s ease,visibility 0s linear .2s;visibility:hidden;width:260px;z-index:5000}.app-shell-bare .sidebar.sidebar-peek.drawer-open{transform:none;transition:transform .2s ease;visibility:visible}.peek-backdrop{background:#0f172a40;inset:0;position:fixed;z-index:4950}@media (prefers-reduced-motion:reduce){.app-shell-bare .sidebar.sidebar-peek,.app-shell-bare .sidebar.sidebar-peek.drawer-open{transition:none}}.ws-root{background:#f3f4f6;color:#1f2937;display:flex;flex-direction:column;height:100vh;height:100dvh}.ws-muted{color:#6b7280}.ws-header{align-items:center;background:#1e3a8a;color:#fff;display:flex;flex-shrink:0;flex-wrap:wrap;gap:.5rem .9rem;padding:.55rem 1rem .55rem 1.1rem}.ws-back{color:#dbeafe;font-size:.85rem;white-space:nowrap}.ws-back:hover{color:#fff;text-decoration:underline}.ws-hfield{align-items:center;display:flex;gap:.4rem;position:relative}.ws-hfield>span{color:#bfdbfe;font-size:.75rem}.ws-class-select{background:#ffffff1f;border:1px solid #ffffff59;border-radius:6px;color:#fff;font-size:1rem;font-weight:700;max-width:min(420px,70vw);padding:.28rem .5rem}.ws-class-select option{color:#1f2937}.ws-hbtn{background:#0000;border:1px solid #ffffff8c;border-radius:6px;color:#fff;cursor:pointer;font-size:.88rem;padding:.35rem .8rem;white-space:nowrap}.ws-hbtn:hover:not(:disabled){background:#ffffff1f}.ws-hbtn:disabled{cursor:not-allowed;opacity:.5}.ws-hbtn.is-other{border-color:#fcd34d;color:#fde68a}.ws-hbtn-icon{align-items:center;display:inline-flex;justify-content:center;min-height:34px;min-width:36px;padding:.3rem}.ws-hbtn-primary{background:#fff;border-color:#fff;color:#1e3a8a;font-weight:700}.ws-hbtn-primary:hover:not(:disabled){background:#dbeafe}.ws-hgap{flex:1 1}.ws-kpis{align-items:baseline;color:#dbeafe;display:flex;flex-wrap:wrap;font-size:.85rem;gap:1rem}.ws-kpis b{color:#fff;font-size:1rem;margin:0 1px}.ws-kpis b.ws-kpi-big{font-size:1.25rem}.ws-pop{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 12px 32px #0000002e;color:#1f2937;padding:.6rem;position:absolute;top:calc(100% + 6px);z-index:4100}.ws-period-select{background:#ffffff1f;border:1px solid #ffffff59;border-radius:6px;color:#fff;font-size:.85rem;min-width:0;padding:.25rem .4rem;width:auto}.ws-period-select option{color:#1f2937}.ws-period-select.is-other{border-color:#fcd34d;color:#fde68a}.ws-period-select:disabled{opacity:1}.ws-hnote{color:#bfdbfe;font-size:.75rem;white-space:nowrap}.ws-tabs{align-items:stretch;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;flex-wrap:wrap;gap:.15rem;padding:0 1rem}.ws-tab{align-items:center;background:none;border:none;border-bottom:3px solid #0000;color:#4b5563;cursor:pointer;display:inline-flex;font-size:.95rem;gap:.35rem;padding:.7rem .85rem .55rem}.ws-tab.on,.ws-tab:hover{color:#1e3a8a}.ws-tab.on{border-bottom-color:#2563eb;font-weight:700}.ws-tab-badge{background:#fee2e2;border-radius:999px;color:#991b1b;font-size:.7rem;font-weight:700;padding:0 .45rem}.ws-tab-tool{background:none;border:none;color:#4b5563;cursor:pointer;font-size:.85rem;padding:0 .6rem}.ws-tab-tool:hover{color:#1e3a8a}.ws-menu{display:flex;position:relative}.ws-menu>.ws-tab-tool{font-size:1.2rem;letter-spacing:1px}.ws-menu-pop{display:flex;flex-direction:column;min-width:260px;padding:.35rem;right:0}.ws-menu-pop a,.ws-menu-pop button{background:none;border:none;border-radius:6px;color:#1f2937;cursor:pointer;display:block;font-size:.9rem;padding:.5rem .7rem;text-align:left}.ws-menu-pop a:hover,.ws-menu-pop button:hover:not(:disabled){background:#f3f4f6}.ws-menu-pop button.is-danger{color:#b91c1c}.ws-menu-pop button:disabled{color:#9ca3af;cursor:not-allowed}.ws-menu-pop hr{border:none;border-top:1px solid #e5e7eb;margin:.3rem 0}.ws-menu-note{font-size:.75rem;padding:0 .7rem .3rem}.ws-banner{background:#eff6ff;border-bottom:1px solid #bfdbfe;color:#1e3a8a;flex-shrink:0;font-size:.88rem;padding:.45rem 1.1rem}.ws-banner a{color:#1d4ed8;margin-left:.5rem;text-decoration:underline}.ws-body{flex:1 1;min-height:0;overflow:auto;padding:1rem 1.1rem}.ws-panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.15rem}.ws-panel-warn{background:#fffbeb;border-color:#fcd34d}.ws-panel-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:.7rem}.ws-panel-head h2{color:#111827;flex:1 1;font-size:1rem;margin:0}.ws-panel-head .ws-muted{font-size:.8rem}.ws-note{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#374151;font-size:.88rem;margin-bottom:.8rem;padding:.55rem .8rem}.ws-note-warn{background:#fffbeb;border-color:#fde68a;color:#78350f}.ws-note-risk{background:#fef2f2;border-color:#fecaca;color:#7f1d1d;margin-bottom:0}.ws-link-btn{background:none;border:none;color:#1d4ed8;cursor:pointer;font-size:.88rem;padding:0;white-space:nowrap}.ws-link-btn:hover{text-decoration:underline}.ws-name-btn{background:none;border:none;color:#111827;cursor:pointer;font:inherit;padding:0;text-align:left}.ws-name-btn:hover{color:#1d4ed8;text-decoration:underline}.ws-chip-risk{background:#fee2e2;color:#7f1d1d;font-size:.75rem;padding:.1rem .55rem}.ws-chip-risk,.ws-chip-warn{border-radius:999px;white-space:nowrap}.ws-chip-warn{background:#fef3c7;color:#78350f;font-size:.72rem;margin-left:.4rem;padding:.05rem .5rem}.ws-icon-btn{background:none;border:none;border-radius:6px;color:#4b5563;cursor:pointer;font-size:1.4rem;line-height:1;padding:.2rem .4rem}.ws-icon-btn:hover{background:#f3f4f6}.ws-num{text-align:right}.ws-toolbar{align-items:center;display:flex;flex-wrap:wrap;font-size:.85rem;gap:.5rem .8rem;margin-bottom:.6rem}.ws-toolbar-gap{flex:1 1}.ws-search{font-size:.88rem;padding:.35rem .6rem;width:210px}.ws-search,.ws-seg{border:1px solid #d1d5db;border-radius:6px}.ws-seg{align-items:stretch;background:#fff;display:inline-flex;overflow:hidden}.ws-seg-btn{background:#fff;border:none;color:#374151;cursor:pointer;font-size:.85rem;padding:.32rem .7rem}.ws-seg-btn+.ws-seg-btn,.ws-seg-btn+.ws-seg-label,.ws-seg-label+.ws-seg-btn{border-left:1px solid #d1d5db}.ws-seg-btn.on{background:#1e3a8a;color:#fff}.ws-seg-btn:disabled{color:#c0c4cc;cursor:default}.ws-seg-label{align-items:center;display:inline-flex;font-size:.82rem;padding:.32rem .55rem}.ws-table-box{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:1 1;min-height:0;overflow:auto}.ws-overview-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem}.ws-col-main{flex:999 1 560px;flex-direction:column}.ws-col-main,.ws-col-side{display:flex;gap:1rem;min-width:0}.ws-col-side{flex:1 1 320px;flex-direction:column}.ws-bars{align-items:flex-end;border-bottom:1px solid #d1d5db;display:flex;gap:4px;height:240px}.ws-bar{align-items:center;background:none;border:none;border-radius:4px 4px 0 0;cursor:pointer;display:flex;flex:1 1;flex-direction:column;height:100%;justify-content:flex-end;min-width:0;padding:0}.ws-bar:hover{background:#f3f4f6}.ws-bar-val{color:#374151;font-size:.68rem;margin-bottom:2px;white-space:nowrap}.ws-bar-fill{border-radius:4px 4px 0 0;display:block;max-width:44px;width:100%}.ws-bar-labels{display:flex;gap:4px;margin-top:4px}.ws-bar-labels span{color:#6b7280;flex:1 1;font-size:.68rem;min-width:0;overflow:hidden;text-align:center;white-space:nowrap}.ws-legend{color:#4b5563;display:flex;flex-wrap:wrap;font-size:.78rem;gap:1rem;margin-top:.6rem}.ws-legend i{border-radius:2px;display:inline-block;height:10px;margin-right:4px;vertical-align:-1px;width:10px}.ws-stat-row{grid-gap:.7rem;display:grid;gap:.7rem;grid-template-columns:repeat(4,minmax(0,1fr))}.ws-stat{background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:.7rem .9rem;text-align:left}.ws-stat:hover{border-color:#93c5fd}.ws-stat-label{color:#4b5563;font-size:.78rem}.ws-stat-num{color:#111827;font-size:1.5rem;font-weight:700}.ws-stat-num small{font-size:.85rem;font-weight:400;margin-left:2px}.ws-risk-list,.ws-task-list{list-style:none;margin:0;padding:0}.ws-task-list li{align-items:center;display:flex;font-size:.9rem;gap:.6rem;padding:.4rem 0}.ws-task-list li>span{flex:1 1;min-width:0}.ws-task-list .ws-muted{font-size:.8rem;margin-left:.3rem}.ws-risk-list li{align-items:center;border-top:1px solid #f3f4f6;display:flex;font-size:.9rem;gap:.6rem;padding:.45rem 0}.ws-risk-name{background:none;border:none;color:#111827;cursor:pointer;flex:1 1;font:inherit;font-weight:500;min-width:0;padding:0;text-align:left}.ws-risk-name:hover{color:#1d4ed8}.ws-risk-name .ws-muted{font-size:.78rem;font-weight:400;margin-left:.4rem}.ws-allpane{max-width:1400px}.ws-split{display:flex;gap:0;height:100%;min-height:0}.ws-split.is-left{flex-direction:row-reverse}.ws-split.is-dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}.ws-split.is-dragging *{cursor:col-resize!important}.ws-split-main{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;min-width:0}.ws-split-side{background:#fff;border:1px solid #e5e7eb;border-radius:10px;display:flex;flex:0 0 340px;flex:0 0 var(--side-w,340px);flex-direction:column;gap:.8rem;min-width:0;overflow:auto;padding:1rem 1.1rem;width:340px;width:var(--side-w,340px)}.ws-side-title{color:#111827;font-size:1.25rem;margin:.1rem 0 0}.ws-side-rate{align-items:baseline;display:flex;flex-wrap:wrap;gap:.6rem}.ws-side-rate strong{font-size:1.9rem}.ws-side-rate .ws-muted{font-size:.85rem}.ws-side-actions{display:flex;flex-direction:column;gap:.4rem;margin-top:auto}.ws-side-actions .btn-secondary{text-align:center}.ws-side-actions-row{display:flex;flex-wrap:wrap;gap:.4rem}.ws-side-stats{grid-gap:.35rem;display:grid;gap:.35rem;grid-template-columns:repeat(5,minmax(0,1fr))}.ws-side-stat{align-items:center;background:#f9fafb;border:1px solid #0000;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font:inherit;padding:.4rem .2rem}.ws-side-stat span{color:#4b5563;font-size:.72rem}.ws-side-stat b{font-size:1.15rem}.ws-side-stat.is-abs{background:#fef2f2}.ws-side-stat.is-abs b{color:#991b1b}.ws-side-stat.on{border-color:#2563eb}.ws-edit-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;display:flex;flex-direction:column;gap:.45rem;padding:.7rem}.ws-edit-box input:not([type]),.ws-edit-box input[type=text]{border:1px solid #d1d5db;border-radius:6px;padding:.35rem .5rem}.ws-edit-choices{display:flex;flex-wrap:wrap;gap:.35rem}.ws-choice{background:#fff;border:1.5px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.88rem;font-weight:700;padding:.35rem .65rem}.ws-choice:disabled{background:#e5e7eb;border-color:#e5e7eb;color:#6b7280;cursor:default}.ws-field{display:flex;flex-direction:column;font-size:.88rem;font-weight:700;gap:.3rem}.ws-field textarea{border:1px solid #d1d5db;border-radius:6px;font:inherit;font-weight:400;padding:.5rem .6rem;resize:vertical}.ws-inline-field{align-items:center;display:flex;font-size:.85rem;gap:.5rem}.ws-danger-zone{align-items:flex-start;border-top:1px dashed #d1d5db;display:flex;flex-direction:column;gap:.3rem;margin-top:auto;padding-top:.8rem}.ws-mx,.ws-sheet-table,.ws-ss{border-collapse:initial;border-spacing:0;min-width:100%;width:-webkit-max-content;width:max-content}.ws-mx td,.ws-mx th,.ws-sheet-table td,.ws-sheet-table th,.ws-ss td,.ws-ss th{background:#fff;border-bottom:1px solid #eef0f3;padding:.35rem .55rem;white-space:nowrap}.ws-mx thead th,.ws-sheet-table thead th,.ws-ss thead th{background:#f9fafb;border-bottom:1px solid #d1d5db;color:#374151;font-size:.85em;font-weight:500;text-align:left;top:0;z-index:3}.ws-mx thead th.ws-num,.ws-ss thead th.ws-num{text-align:right}.ws-mx .ws-pin0{left:0;min-width:96px}.ws-mx .ws-pin0,.ws-mx .ws-pin1{position:-webkit-sticky;position:sticky;z-index:2}.ws-mx .ws-pin1{box-shadow:2px 0 0 #d1d5db;left:96px;min-width:120px}.ws-mx thead .ws-pin0,.ws-mx thead .ws-pin1{z-index:4}.ws-mx .ws-sep{border-right:1px solid #d1d5db}.ws-mx .ws-c{padding:0;text-align:center}.ws-mx thead .ws-c{padding:.35rem .4rem;text-align:center}.ws-mx td.ws-c button{background:#0000;border:none;cursor:pointer;font:inherit;font-weight:700;min-width:2.4em;padding:.35rem .2rem;width:100%}.ws-mx td.ws-c button:hover{background:#eff6ff}.ws-mx td.ws-c.is-abs{background:#fef2f2}.ws-mx td.ws-c.is-changed{background:#fefce8}.ws-mx td.ws-c.is-chosen button{background:#dbeafe;outline:2px solid #2563eb;outline-offset:-2px}.ws-mx tr.is-risk td:not(.ws-c){background:#fff5f5}.ws-mx tr.is-sel td:not(.ws-c){background:#dbeafe}.ws-mx tfoot td{background:#f9fafb;border-top:1px solid #d1d5db;bottom:0;font-size:.85em;position:-webkit-sticky;position:sticky}.ws-mx tfoot td.ws-pin0{z-index:3}.ws-mx-legend{color:#4b5563;display:flex;flex-wrap:wrap;font-size:.78rem;gap:.4rem 1rem;margin-top:.45rem}.ws-ss tbody tr{cursor:pointer}.ws-ss tbody tr:hover td{background:#f9fafb}.ws-ss tr.is-sel td{background:#dbeafe}.ws-ss tr.is-dim td{color:#9ca3af}.ws-rate-bar{align-items:center;display:flex;gap:.4rem}.ws-rate-bar>div{background:#e5e7eb;border-radius:4px;flex:1 1;height:8px;min-width:60px;overflow:hidden}.ws-rate-bar i{display:block;height:100%}.ws-rate-bar span{font-size:.8rem;text-align:right;width:3.2em}.ws-memo-cell{color:#4b5563;max-width:260px;overflow:hidden;text-overflow:ellipsis}.ws-sheets{display:flex;flex-direction:column;height:100%;min-height:0}.ws-sheet-desc{font-size:.8rem;margin:-.2rem 0 .5rem}.ws-sheet-foot{font-size:.8rem;margin-top:.4rem}.ws-drawer-back{background:#0f172a59;inset:0;position:fixed;z-index:4150}.ws-drawer{background:#f8fafc;bottom:0;box-shadow:-12px 0 40px #00000040;display:flex;flex-direction:column;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .22s ease,visibility 0s linear .22s;visibility:hidden;width:min(1100px,100vw);z-index:4160}.ws-drawer.open{transform:none;transition:transform .22s ease;visibility:visible}.ws-drawer-head{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:.8rem;padding:.8rem 1.1rem}.ws-drawer-head h2{color:#111827;font-size:1.15rem;margin:0}.ws-drawer-head .ws-icon-btn{margin-left:auto}.ws-drawer-body{flex:1 1;overflow:auto;padding:1rem 1.1rem}@media (prefers-reduced-motion:reduce){.ws-drawer,.ws-drawer.open{transition:none}}.ws-modal-back{align-items:flex-start;background:#0f172a73;display:flex;inset:0;justify-content:center;overflow:auto;padding:4vh 1rem;position:fixed;z-index:4200}.ws-modal{background:#fff;border-radius:12px;box-shadow:0 20px 50px #00000059;display:flex;flex-direction:column;width:min(780px,100%)}.ws-modal-head{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;padding:.9rem 1.3rem}.ws-modal-head h2{color:#111827;flex:1 1;font-size:1.1rem;margin:0}.ws-modal-body{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.3rem}.ws-modal-body fieldset{border:none;margin:0;padding:0}.ws-modal-body legend{font-size:.95rem;font-weight:700;margin-bottom:.45rem}.ws-modal-foot{align-items:center;background:#f9fafb;border-radius:0 0 12px 12px;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:.6rem;padding:.8rem 1.3rem}.ws-kind-grid{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.ws-kind{background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:.2rem;padding:.65rem .75rem;text-align:left}.ws-kind span{color:#4b5563;font-size:.8rem;line-height:1.55}.ws-kind.on{background:#eff6ff;border-color:#2563eb}.ws-chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.ws-chip{background:#fff;border:1px solid #d1d5db;border-radius:999px;cursor:pointer;font-size:.85rem;padding:.25rem .75rem}.ws-chip.on{background:#1e3a8a;border-color:#1e3a8a;color:#fff}.ws-sheet-grid{grid-gap:.35rem 1.2rem;display:grid;font-size:.88rem;gap:.35rem 1.2rem;grid-template-columns:repeat(2,minmax(0,1fr))}.ws-sheet-grid>.ws-muted{font-size:.78rem}.ws-sheet-grid label{align-items:center;cursor:pointer;display:flex;gap:.4rem}.ws-toasts{bottom:1rem;display:flex;flex-direction:column;gap:.5rem;max-width:min(520px,calc(100vw - 2rem));position:fixed;right:1rem;z-index:4300}.ws-toast{align-items:flex-start;border-radius:8px;box-shadow:0 8px 24px #0000002e;display:flex;font-size:.9rem;gap:.6rem;line-height:1.6;padding:.65rem .8rem}.ws-toast span{flex:1 1}.ws-toast button{background:none;border:none;color:inherit;cursor:pointer;font-size:1.1rem;line-height:1}.ws-toast-err{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.ws-toast-ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}@media (max-width:900px){.ws-root{height:auto;min-height:100vh}.ws-body{overflow:visible;padding:.8rem}.ws-split{flex-direction:column;height:auto}.ws-split-side{flex:1 1 auto}.ws-table-box{max-height:70vh}.ws-sheets{height:auto}.ws-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.ws-kpis{order:10;width:100%}.ws-sheet-grid{grid-template-columns:1fr}.ws-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.ws-tab,.ws-tab-tool{flex-shrink:0;white-space:nowrap}.ws-bar-val{display:none}.ws-bars{gap:2px;height:180px}.ws-bar-labels{gap:2px}.ws-bar-labels span{font-size:.6rem}}.dash-strip-sub{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem .8rem;margin:-.6rem 0 1.25rem}.dash-strip-subbtn{align-items:center;background:#fff;border:1px solid #86efac;border-radius:8px;color:#166534;display:inline-flex;font-size:.9rem;font-weight:700;gap:.4rem;padding:.45rem .9rem}.dash-strip-subbtn:hover{background:#f0fdf4}.dash-strip-subnote{color:#6b7280;font-size:.8rem}.notif-action{align-items:center;background:#fff;border:2px solid #2563eb;border-radius:8px;color:#1d4ed8;display:flex;font-size:.92rem;font-weight:700;gap:.5rem;margin:.1rem 0 .7rem;max-width:100%;padding:.5rem 1rem;width:-webkit-fit-content;width:fit-content}.notif-action:hover{background:#2563eb;color:#fff}.notif-action:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.ws-splitter{align-items:center;align-self:stretch;border-radius:6px;cursor:col-resize;display:flex;flex:0 0 16px;justify-content:center;position:relative;touch-action:none}.ws-splitter:before{background:#e2e8f0;bottom:0;content:"";left:6px;position:absolute;top:0;transition:background .12s;width:2px}.ws-split.is-dragging .ws-splitter:before,.ws-splitter:focus-visible:before,.ws-splitter:hover:before{background:#93c5fd}.ws-splitter:focus-visible{outline:none}.ws-splitter-grip{background:#94a3b8;background-image:radial-gradient(circle,#fff 1px,#0000 1.5px);background-position:50%;background-size:8px 8px;border-radius:4px;height:56px;position:relative;width:8px;z-index:1}.ws-split.is-dragging .ws-splitter-grip,.ws-splitter:focus-visible .ws-splitter-grip,.ws-splitter:hover .ws-splitter-grip{background:#2563eb}.ws-side-tools{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:.3rem;margin:-.4rem -.4rem 0;padding-bottom:.5rem}.ws-side-tools-label{color:#6b7280;flex:1 1;font-size:.75rem}.ws-side-tool{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#4b5563;cursor:pointer;font-size:.75rem;padding:.15rem .5rem;white-space:nowrap}.ws-side-tool:hover{background:#f3f4f6;color:#1e3a8a}.ws-side-reopen{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:10px;color:#1e3a8a;cursor:pointer;display:flex;flex:0 0 34px;flex-direction:column;font-size:.85rem;gap:.5rem;margin-left:.5rem;padding:.7rem 0}.ws-split.is-left .ws-side-reopen{margin-left:0;margin-right:.5rem}.ws-side-reopen:hover{background:#eff6ff;border-color:#93c5fd}.ws-side-reopen-label{letter-spacing:.1em;writing-mode:vertical-rl}@media (max-width:900px){.ws-split,.ws-split.is-left{flex-direction:column}.ws-split-side{flex:1 1 auto;width:auto}.ws-splitter{display:none}.ws-side-reopen{flex:0 0 auto;flex-direction:row;justify-content:center;margin:.5rem 0 0;padding:.5rem}.ws-side-reopen-label{writing-mode:horizontal-tb}.ws-side-tool[aria-label*=\52D5\304B\3059]{display:none}}.ws-split.ws-split-flow{align-items:flex-start;height:auto}.ws-split-flow>.ws-split-main{gap:1rem}.ws-split-flow>.ws-splitter{align-self:stretch;min-height:200px}.ws-split-side.ws-split-plain{background:#0000;border:none;gap:1rem;overflow:visible;padding:0}.ws-split-side.ws-split-plain>.ws-side-tools{border-bottom:none;margin:0;padding:0 .2rem .2rem}.ws-col-grip{bottom:0;cursor:col-resize;position:absolute;right:0;top:0;touch-action:none;width:10px;z-index:6}.ws-col-grip:after{background:#cbd5e1;border-radius:1px;bottom:20%;content:"";position:absolute;right:0;top:20%;width:2px}th:hover>.ws-col-grip:after{background:#94a3b8}.ws-col-grip.on:after,.ws-col-grip:hover:after{background:#2563eb;bottom:0;top:0}body.ws-col-resizing,body.ws-col-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.ws-colfixed td,.ws-colfixed th{overflow:hidden;text-overflow:ellipsis}.ws-colfixed .ws-pin0,.ws-colfixed .ws-pin1,.ws-colfixed td.ws-c button{min-width:0}.ws-mx thead th,.ws-sheet-table thead th,.ws-ss thead th{position:-webkit-sticky;position:sticky}@media (hover:none){.ws-col-grip{width:18px}}
/*# sourceMappingURL=main.cca641dd.css.map*/