:root{color-scheme:light;font-family:Microsoft YaHei,Segoe UI,-apple-system,sans-serif;background:#f8fafc;color:#1e293b;--primary: #4f46e5;--primary-light: #818cf8;--primary-dark: #3730a3;--accent: #f59e0b;--surface: #fff;--border: #e2e8f0;--muted: #94a3b8;--text: #1e293b;--text-light: #64748b}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--primary);text-decoration:none}button,input,textarea,select{font:inherit}.app-container{min-height:100vh;display:flex;flex-direction:column;background:#f8fafc}.app-top-bar{height:4px;background:linear-gradient(90deg,var(--primary),#8b5cf6,var(--accent))}.app-header{text-align:center;padding:1.2rem 1rem .6rem;position:relative;background:#fff;border-bottom:1px solid var(--border)}.app-header-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:center;position:relative}.app-home-link{position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:.78rem;color:var(--muted);text-decoration:none;padding:.35rem .7rem;border-radius:.4rem;transition:all .2s;border:1px solid var(--border);background:#f8fafc;display:inline-flex;align-items:center;gap:.3rem}.app-home-link:hover{color:var(--primary);border-color:var(--primary-light);background:#eef2ff}.app-logo{height:2.4rem;margin-right:.8rem}.app-brand{display:flex;flex-direction:column;align-items:flex-start}.app-title{margin:0;font-size:1.3rem;font-weight:800;color:var(--text);letter-spacing:-.02em}.app-subtitle{color:var(--text-light);font-size:.78rem;display:block;margin-top:.1rem}.app-footer{text-align:center;padding:1rem;color:var(--muted);font-size:.78rem;margin-top:auto;background:#fff;border-top:1px solid var(--border)}.footer-link{color:#184e77;text-decoration:underline}.tab-nav{display:flex;justify-content:center;gap:.35rem;padding:.6rem 1rem;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;box-shadow:0 1px 3px #0000000a}.tab-btn{padding:.55rem 1.2rem;border:none;border-radius:.5rem;background:transparent;color:var(--text-light);cursor:pointer;font-size:.88rem;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:.4rem;position:relative}.tab-btn:hover{background:#f1f5f9;color:var(--text)}.tab-btn.active{background:#eef2ff;color:var(--primary);font-weight:600;box-shadow:inset 0 0 0 1px #4f46e526}.tab-btn.active:after{content:"";position:absolute;bottom:-.65rem;left:50%;transform:translate(-50%);width:1.5rem;height:3px;background:var(--primary);border-radius:0 0 2px 2px}.tab-icon{font-size:1rem}.tab-content{flex:1;max-width:1100px;margin:0 auto;width:100%;padding:1.2rem 1rem}.message-board{margin-top:1.2rem;background:#fffffff0;border:1px solid rgba(79,70,229,.14);box-shadow:0 10px 30px #4f46e512;border-radius:1.1rem;padding:.95rem;overflow:hidden}.message-board-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.65rem}.message-board-head h2{margin:0;color:#184e77;font-size:1rem}.message-board-head p{margin:.15rem 0 0;color:var(--text-light);font-size:.8rem}.message-board-badge{flex-shrink:0;padding:.25rem .55rem;border-radius:999px;background:#eef2ff;color:var(--primary);border:1px solid rgba(79,70,229,.14);font-size:.75rem;font-weight:600}.update-log-panel{margin-bottom:.65rem}.update-log-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.45rem;color:#0f766e;font-size:.82rem;font-weight:800}.update-log-head em{color:var(--text-light);font-size:.72rem;font-style:normal;font-weight:600}.update-log-player{height:42px;overflow:hidden;border:1px solid #cce7df;border-radius:.8rem;background:linear-gradient(90deg,#f4fffb,#fff);position:relative}.update-log-player:before,.update-log-player:after{content:"";position:absolute;top:0;bottom:0;width:2.2rem;z-index:1;pointer-events:none}.update-log-player:before{left:0;background:linear-gradient(90deg,#f4fffb,#f4fffb00)}.update-log-player:after{right:0;background:linear-gradient(270deg,#fff,#fff0)}.update-log-track{display:inline-flex;align-items:center;gap:1rem;min-width:100%;height:100%;white-space:nowrap;animation:message-board-scroll 38s linear infinite;padding-left:100%}.update-log-player:hover .update-log-track{animation-play-state:paused}.update-log-item{display:inline-flex;align-items:center;gap:.45rem;color:#334155;font-size:.82rem}.update-log-dot{padding:.12rem .45rem;border-radius:999px;background:#ccfbf1;color:#0f766e;font-size:.72rem;font-weight:800}.message-board-player{height:42px;overflow:hidden;border:1px solid #e0e7ff;border-radius:.8rem;background:linear-gradient(90deg,#f8fbff,#fff);position:relative}.message-board-player:before,.message-board-player:after{content:"";position:absolute;top:0;bottom:0;width:2.2rem;z-index:1;pointer-events:none}.message-board-player:before{left:0;background:linear-gradient(90deg,#f8fbff,#f8fbff00)}.message-board-player:after{right:0;background:linear-gradient(270deg,#fff,#fff0)}.message-board-track{display:inline-flex;align-items:center;gap:1rem;min-width:100%;height:100%;white-space:nowrap;animation:message-board-scroll 32s linear infinite;padding-left:100%}.message-board-player:hover .message-board-track{animation-play-state:paused}.message-board-item{display:inline-flex;align-items:center;gap:.45rem;color:#334155;font-size:.84rem}.message-board-tab{padding:.12rem .45rem;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:.72rem;font-weight:700}.message-board-text{max-width:34rem;overflow:hidden;text-overflow:ellipsis}.message-board-time{color:var(--muted);font-size:.72rem}.message-board-form{display:grid;grid-template-columns:1fr auto;gap:.55rem;margin-top:.65rem}.message-board-form input{width:100%;border:1px solid #cbd5e1;border-radius:.65rem;padding:.62rem .75rem;background:#fff;color:var(--text);outline:none}.message-board-form input:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px #4f46e51f}.message-board-form button{border:none;border-radius:.65rem;padding:.62rem 1.1rem;background:linear-gradient(135deg,#184e77,#1a6b9e);color:#fff;font-weight:700;cursor:pointer}.message-board-form button:disabled{opacity:.55;cursor:not-allowed}.message-board-status{margin:.45rem 0 0;color:var(--text-light);font-size:.78rem}@keyframes message-board-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.tab-page{animation:fadeIn .3s}.tab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem}.step-guide{display:flex;gap:.5rem;padding:.8rem 1rem;margin-bottom:1rem;background:#ffffffd9;border-radius:1rem;overflow-x:auto;border:1px solid rgba(24,78,119,.1)}.step-item{display:flex;align-items:flex-start;gap:.5rem;min-width:180px;flex:1}.step-num{width:28px;height:28px;border-radius:50%;background:#184e77;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0;margin-top:2px}.step-text strong{display:block;font-size:.85rem}.step-text p{margin:.15rem 0 0;font-size:.75rem;color:#6b7280}.step-arrow{color:#9ca3af;font-size:1.2rem;margin-top:4px;flex-shrink:0}.card{background:#ffffffeb;border:1px solid rgba(24,78,119,.1);box-shadow:0 10px 30px #184e770f;border-radius:1.25rem;padding:1.2rem}.card h2{margin:0 0 .8rem;font-size:1.1rem;color:#184e77}.card h3{margin:.8rem 0 .4rem;font-size:.95rem}.file-select-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.7rem .9rem;margin-bottom:.5rem;border:2px dashed #bfd0df;border-radius:.9rem;transition:all .2s;background:#fbfdff;cursor:pointer}.file-select-row:hover{border-color:#93b4d3}.file-select-row.drag-over{border-color:#184e77;background:#eef4fb}.file-select-row.selected{border-style:solid;border-color:#16a34a;background:#f0fdf4}.file-info{flex:1;min-width:0}.file-label{font-weight:600;display:block;margin-bottom:.25rem}.file-hint{font-size:.85rem;color:#9ca3af}.file-list{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.2rem}.file-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;background:#dcfce7;border:1px solid #86efac;border-radius:1rem;font-size:.78rem;color:#166534}.tag-remove{background:none;border:none;color:#166534;cursor:pointer;font-size:1rem;padding:0 .15rem;margin:0}.tag-remove:hover{color:#991b1b}.file-actions{display:flex;gap:.3rem;flex-shrink:0;margin-left:.5rem}.btn-browse{padding:.4rem .8rem;background:#184e77;color:#fff;border:none;border-radius:.5rem;cursor:pointer;font-size:.8rem}.btn-browse:hover{background:#0d3b66}.btn-clear{padding:.4rem .8rem;background:transparent;color:#6b7280;border:1px solid #d1d5db;border-radius:.5rem;cursor:pointer;font-size:.8rem}.btn-clear:hover{background:#f3f4f6}.btn-clear-all{padding:.4rem .8rem;background:transparent;color:#6b7280;border:1px solid #d1d5db;border-radius:.5rem;cursor:pointer;font-size:.8rem;width:100%}.btn-clear-all:hover{background:#f3f4f6;color:#991b1b}.btn-primary{width:100%;padding:.9rem;background:linear-gradient(135deg,#184e77,#1a6b9e);color:#fff;border:none;border-radius:.8rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 15px #184e774d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{width:100%;padding:.9rem;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:.8rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem}.btn-secondary:hover{background:#e5e7eb}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-group{display:flex;flex-direction:column;gap:.5rem}.radio-line{display:flex;align-items:center;gap:.45rem;padding:.45rem .2rem;color:var(--text-light);font-size:.88rem;cursor:pointer}.radio-line input{accent-color:#184e77}.btn-download{padding:.5rem 1rem;background:#184e77;color:#fff;border:none;border-radius:.6rem;cursor:pointer;font-size:.85rem;white-space:nowrap}.btn-download:hover{background:#0d3b66}.btn-download:disabled{opacity:.5}.btn-download-all{padding:.7rem 1rem;background:linear-gradient(135deg,#184e77,#1a6b9e);color:#fff;border:none;border-radius:.8rem;cursor:pointer;font-size:.9rem;font-weight:600;width:100%;text-align:center}.btn-download-all:hover{background:#1a6b9e}.tip-modal{position:relative}.modal-close-x{position:absolute;top:.5rem;right:.8rem;background:none;border:none;font-size:1.5rem;color:#9ca3af;cursor:pointer;padding:0;line-height:1}.modal-close-x:hover{color:#374151}.tip-actions{display:flex;gap:.5rem;margin-top:.8rem}.tip-actions .btn-secondary{flex:1;margin-top:0}.tip-actions .btn-primary{flex:1;margin-top:0;padding:.7rem}.qr-image{max-width:200px;height:auto;display:block;margin:0 auto}.org-modal{max-width:440px}.org-list{max-height:300px;overflow-y:auto;margin:.5rem 0}.checkbox-row{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;cursor:pointer;font-size:.88rem}.checkbox-row input{width:auto;margin:0}.org-preview{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}.org-tag{display:inline-block;padding:.15rem .5rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.3rem;font-size:.75rem;color:#166534}.att-full-page{display:flex;flex-direction:column;min-height:100vh;background:#eef2f6;padding:.75rem 1rem 1.5rem}.att-page-header,.att-page-controls,.att-usage-card,.att-remark-bar,.att-share-box,.att-grid-scroll,.att-legend,.att-confirmation-panel,.att-login-box,.att-loading,.error-box{width:100%;max-width:1440px;margin-left:auto;margin-right:auto}.att-loading{text-align:center;padding:4rem 1rem}.att-login-box{max-width:420px;margin:3rem auto 0;padding:1.5rem 1.35rem 1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 12px #0f172a14;text-align:center}.att-login-box h2{margin:0 0 .35rem;font-size:1.12rem;color:#153e65}.att-page-header{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 12px #0f172a0f;padding:.3rem .25rem .55rem;margin-bottom:.75rem}.att-header-top{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem}.att-header-top h1{font-size:1.1rem;margin:0;flex:1}.att-header-sub{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;padding:.3rem 1rem .2rem;font-size:.8rem;color:#6b7280}.att-logo{height:2rem;margin-right:.5rem}.att-back-btn{color:#3b82f6;background:#eff6ff;border:1px solid #bfdbfe;cursor:pointer;font-size:.8rem;padding:.25rem .6rem;border-radius:.4rem;transition:all .15s;display:inline-flex;align-items:center}.att-back-btn:hover{background:#dbeafe;color:#2563eb}.att-badge{display:inline-block;padding:.2rem .55rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:.4rem;font-size:.78rem;color:#374151;max-width:100%;word-break:break-word}.att-page-controls{padding:.7rem .9rem .8rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 12px #0f172a0f;margin-bottom:.75rem}.error-box{text-align:center;padding:4rem 1rem}.att-grid-modal{max-width:95vw;width:1200px;max-height:90vh;overflow-y:auto}.att-filters{display:flex;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.att-filters select{padding:.3rem .5rem;border:1px solid #d1d5db;border-radius:.3rem;font-size:.82rem;max-width:220px;text-overflow:ellipsis}.att-filters select option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.att-linked-section{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem;flex-wrap:wrap}.att-linked-label{font-size:.8rem;color:#6b7280;white-space:nowrap}.att-linked-tags{display:flex;gap:.25rem;flex-wrap:wrap}.att-tag{display:inline-flex;align-items:center;gap:.2rem;padding:.15rem .4rem;background:#dbeafe;border-radius:.3rem;font-size:.75rem}.att-tag-remove{background:none;border:none;color:#dc2626;cursor:pointer;font-size:.7rem;padding:0}.att-linked-add{padding:.2rem .4rem;border:1px dashed #93c5fd;border-radius:.3rem;font-size:.75rem}.att-teacher{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem;align-items:center}.att-teacher-label{font-size:.8rem;color:#6b7280}.att-teacher-tag{display:inline-block;padding:.2rem .55rem;background:#fef3c7;border:1px solid #fde68a;border-radius:.4rem;font-size:.78rem;color:#92400e;max-width:100%;word-break:break-word}.att-action-bar{display:flex;flex-wrap:wrap;gap:.5rem .6rem;align-items:stretch}.att-action-group{flex:0 0 auto;min-width:0;background:#f8fafc;border:1px solid #eef2f7;border-radius:.7rem;padding:.5rem .6rem .6rem;display:flex;flex-direction:column}.att-action-group{--att-cell: 7.4rem}.att-action-group.grid-2{flex-basis:calc(2 * var(--att-cell) + .4rem + 1.2rem)}.att-action-group.grid-3{flex-basis:calc(3 * var(--att-cell) + .8rem + 1.2rem)}.att-action-group.grid-4{flex-basis:calc(4 * var(--att-cell) + 1.2rem + 1.2rem)}.att-action-group.grid-1{flex-basis:calc(1 * var(--att-cell) + 1.2rem)}.att-action-group .att-action-group-grid{flex:1}.att-action-group-label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.02em;color:#94a3b8;margin-bottom:.4rem}.att-action-group-grid{display:grid;gap:.4rem}.att-grid-1{grid-template-columns:repeat(1,minmax(0,1fr))}.att-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.att-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.att-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.att-action-btn{width:100%;margin-top:0;padding:.5rem;min-height:2.3rem;border-radius:.6rem;font-size:.82rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;justify-content:center}.att-spinner{display:inline-block;flex:0 0 auto;width:.85em;height:.85em;margin-left:.35em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:att-spin .75s linear infinite}@keyframes att-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.att-spinner{animation-duration:1.8s}}.att-btn-emerald{background:#059669;border-color:#059669}.att-btn-emerald:hover:not(:disabled){background:#047857;border-color:#047857}.att-confirm-btn{background:#fef08a;color:#dc2626;border-color:#facc15;font-weight:700}.att-save-hint{flex:1 1 100%;font-size:.74rem;color:#64748b}.att-confirmation-panel{margin:0 auto .75rem;background:#fff;border:1px solid #fde68a;border-radius:.75rem;padding:.75rem .9rem;box-shadow:0 8px 24px #0f172a0f}.att-refresh-panel{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem .9rem;margin:0 auto .75rem;background:#fff;border:1px solid #bfdbfe;border-radius:.75rem;padding:.75rem .9rem;box-shadow:0 8px 24px #0f172a0f}.att-refresh-title{width:100%;font-size:.82rem;line-height:1.55;color:#1e3a5f}.att-refresh-hint{width:100%;font-size:.78rem;line-height:1.55;color:#92400e;background:#fefce8;border:1px solid #fde68a;border-radius:6px;padding:6px 10px}.att-ledger-table{width:100%;border-collapse:collapse;font-size:.78rem;margin:4px 0 10px}.att-ledger-table th,.att-ledger-table td{border:1px solid #e2e8f0;padding:4px 8px;text-align:left;color:#1e3a5f}.att-ledger-table th{background:#f1f5f9;font-weight:600}.att-ledger-name{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-ledger-diff{margin-top:8px;font-size:.82rem;color:#166534}.att-ledger-download{margin-left:10px;color:#1167ff;text-decoration:underline}.poll-hint{margin:6px 0 0;font-size:.8rem;line-height:1.6;color:#475569}.poll-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.poll-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;line-height:1.6;white-space:nowrap}.poll-ok{background:#dcfce7;color:#166534}.poll-bad{background:#fee2e2;color:#b91c1c}.poll-run{background:#dbeafe;color:#1d4ed8}.poll-idle{background:#f1f5f9;color:#64748b}.poll-auto{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;color:#475569}.poll-error{margin-top:8px;padding:6px 10px;border-radius:6px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:.8rem}.poll-table{width:100%;border-collapse:collapse;font-size:.78rem;margin-top:8px}.poll-table th,.poll-table td{border:1px solid #e2e8f0;padding:5px 8px;text-align:left;vertical-align:top;color:#1e3a5f}.poll-table th{background:#f8fafc;font-weight:600;white-space:nowrap}.poll-mono{font-family:ui-monospace,Consolas,monospace;font-size:.72rem;white-space:nowrap;color:#475569}.poll-file{max-width:320px;word-break:break-all}.poll-last{font-family:ui-monospace,Consolas,monospace;font-size:.7rem;color:#64748b;margin-top:2px;word-break:break-all}.poll-log{margin:6px 0 0;padding:6px 8px;max-height:220px;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:6px;font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-all}.poll-link{background:none;border:none;padding:0;color:#1167ff;font-size:.75rem;cursor:pointer;text-decoration:underline}.poll-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}.poll-dot.poll-ok{background:#16a34a}.poll-dot.poll-idle{background:#94a3b8}.poll-rule{margin-top:8px;padding:6px 10px;border-radius:6px;background:#fff7ed;border:1px solid #fed7aa;color:#92400e;font-size:.78rem;line-height:1.65}.poll-row-bad td{background:#fff5f5}.poll-flag{margin-left:6px;font-size:.7rem;font-weight:600;color:#b91c1c}.att-refresh-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem .9rem}.att-refresh-fields>label{display:grid;gap:.3rem;font-size:.82rem;color:#475569}.att-refresh-message{width:100%;font-size:.78rem;font-weight:700;color:#1e3a5f}.att-confirmation-header{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap}.att-confirmation-title{font-size:.96rem;font-weight:700;color:#92400e}.att-confirmation-summary{font-size:.78rem;color:#6b7280;margin-top:.15rem}.att-confirmation-copy{width:auto;margin-top:0;padding:.5rem .85rem;border-radius:.65rem;font-size:.8rem}.att-confirmation-list{margin-top:.75rem;border:1px solid #fed7aa;border-radius:.65rem;background:#fff7ed;padding:.45rem .7rem;max-height:13.5rem;overflow:auto}.att-confirmation-list-title{font-size:.82rem;font-weight:700;color:#b45309;padding-bottom:.35rem}.att-confirmation-item{padding:.42rem 0;border-top:1px dashed #fed7aa}.att-confirmation-class{font-size:.82rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-confirmation-meta{font-size:.74rem;color:#6b7280;margin-top:.08rem}.att-confirmation-entry{font-size:.72rem;color:#dc2626;margin-top:.16rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-confirmation-empty{font-size:.78rem;color:#9ca3af;padding:.35rem 0 .1rem}.att-grid-scroll{flex:1;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 2px 12px #0f172a0f;margin:0 0 .75rem;min-height:400px;-webkit-overflow-scrolling:touch}.att-grid-table{border-collapse:collapse;font-size:.78rem;min-width:100%;table-layout:auto}.att-grid-table th{background:#f3f4f6;padding:.3rem .4rem;text-align:center;border:1px solid #d1d5db;white-space:nowrap}.att-grid-table td{padding:.15rem .3rem;border:1px solid #e5e7eb;text-align:center;vertical-align:middle}.att-th-fix{min-width:2.8rem;position:sticky;z-index:4;background:#eef2ff!important}.att-th-fix-col1{left:0}.att-th-fix-col2{left:2.8rem}.att-th-fix-col3{left:5.6rem}.att-td-fix{white-space:nowrap;position:sticky;z-index:2;background:#fff;font-size:.75rem}.att-td-fix-col1{left:0}.att-td-fix-col2{left:2.8rem}.att-td-fix-col3{left:5.6rem}.att-td-name{white-space:nowrap;font-size:.78rem}.att-th-stat{min-width:3rem;background:#fefce8!important}.att-td-stat{font-weight:600;font-size:.8rem}.att-positive{color:#16a34a}.att-negative{color:#dc2626}.att-total-row td{background:#f8fafc;font-weight:700}.att-total-row .att-td-fix{background:#e2e8f0;z-index:3}.att-total-label{color:#0f172a}.att-total-meta{color:#475569;font-size:.74rem}.att-td-cell{padding:0;width:2.2rem;height:2rem}.att-total-session-cell{padding:.1rem .15rem}.att-total-session{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;gap:.08rem;min-height:1.8rem}.att-total-session-present{color:#16a34a;font-size:.72rem}.att-total-session-absent{color:#dc2626;font-size:.72rem}.att-total-session-error{color:#ea580c;font-size:.68rem;font-weight:700}.att-cell-btn.att-edited{background:#fef3c7;border-color:#fde68a}.att-session-num{font-size:.75rem}.att-session-date{font-size:.65rem;color:#6b7280}.att-grid-table th.att-th-frozen{background:#f1f5f9;color:#64748b}.att-session-lock{font-size:.6rem;line-height:1;margin-top:1px;color:#94a3b8}.att-freeze-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .5rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:.82rem;color:#334155}.att-freeze-row.is-frozen{background:#ecfeff;border-color:#a5f3fc;color:#0e7490;font-weight:700}.att-freeze-row-tag{font-size:.72rem;color:#94a3b8;font-weight:400}.att-usage-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 12px #0f172a0f;padding:.7rem 1rem .8rem;margin-bottom:.75rem}.att-usage-title{font-size:.9rem;font-weight:700;color:#153e65;margin-bottom:.3rem}.att-usage-list{margin:0;padding-left:1.15rem;color:#475569;font-size:.8rem;line-height:1.7}.att-usage-list li{margin:0}.att-usage-list b{color:#0f172a}.att-remark-bar{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 12px #0f172a0f;padding:.5rem .85rem .55rem;margin-bottom:.5rem}.att-remark-label{flex:0 0 auto;font-size:.82rem;font-weight:700;color:#153e65;white-space:nowrap}.att-remark-input{flex:1 1 auto;min-width:0;padding:.42rem .6rem;border:1px solid #cbd5e1;border-radius:.55rem;background:#fff;color:#0f172a;font-size:.82rem}.att-remark-input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 2px #dbeafe}.att-remark-status{flex:0 0 auto;min-width:3.4rem;text-align:right;font-size:.72rem;color:#94a3b8}.att-remark-status-saved{color:#16a34a;font-weight:700}.att-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.att-legend-item{display:inline-flex;align-items:center;gap:.3rem}.att-share-box{margin:0 auto .75rem;padding:.9rem;border:1px solid #dbeafe;border-radius:.9rem;background:#f8fbff;display:grid;justify-items:center;gap:.7rem}.att-share-link-panel{width:min(100%,560px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center}.att-share-link-label{grid-column:1 / -1;font-size:.8rem;font-weight:700;color:#184e77;text-align:left;width:100%}.att-share-link-input{width:100%;min-width:0;padding:.55rem .65rem;border:1px solid #bfdbfe;border-radius:.55rem;background:#fff;color:#0f172a;font-size:.78rem}.att-share-copy-btn{width:auto;margin-top:0;padding:.55rem .85rem;white-space:nowrap;font-size:.8rem}.att-session-bar{display:flex;gap:.15rem;padding:.4rem .5rem;background:#f3f4f6;border-bottom:1px solid #e5e7eb;overflow-x:auto;position:sticky;top:0;z-index:5}.att-session-head{display:flex;flex-direction:column;align-items:center;min-width:3rem;font-size:.7rem;color:#374151;padding:.15rem .3rem;background:#fff;border-radius:.3rem;border:1px solid #d1d5db}.att-student-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;margin:.3rem .5rem;overflow:hidden}.att-student-card:hover{border-color:#93c5fd}.att-card-header{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;background:#f9fafb;border-bottom:1px solid #f1f5f9;font-size:.82rem}.att-card-idx{color:#9ca3af;font-size:.7rem;min-width:1.5rem}.att-card-class{color:#6b7280;font-size:.72rem;max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-card-name{font-weight:600;flex:1}.att-card-stats{display:flex;gap:.5rem;font-size:.75rem;font-weight:600;flex-shrink:0}.att-card-sessions{display:flex;gap:.2rem;padding:.4rem .6rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.att-cell-btn{width:100%;height:100%;border:1px solid #d1d5db;background:#f9fafb;cursor:pointer;font-size:.85rem;font-weight:700;border-radius:.2rem;transition:.15s}.att-cell-btn:hover{border-color:#93c5fd}.att-cell-btn.att-charge{background:#fef2f2;color:#dc2626;border-color:#fecaca}.att-cell-btn.att-reverse{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.att-cell-btn.att-empty{background:#f9fafb;color:#d1d5db}.att-cell-btn.att-error{background:#fff7ed;color:#ea580c;border-color:#fed7aa;cursor:not-allowed}.att-cell-btn.att-modified{border:2px solid #f59e0b!important;box-shadow:0 0 0 1px #fde68a;font-weight:900}.export-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem .9rem;border-radius:.8rem;border:1px solid #e3ebf3;background:#fbfdff}.export-row-main{min-width:0;flex:1 1 auto}.export-row-title,.export-row-notice{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.export-row .btn-download{flex:0 0 auto;align-self:center}@media (max-width: 520px){.export-row{align-items:flex-start;flex-direction:column}.export-row .btn-download{align-self:flex-start}}.batch-management-grid{display:grid;grid-template-columns:minmax(430px,.95fr) minmax(520px,1.25fr);gap:1rem;align-items:start}.batch-management-page .card{min-width:0}.batch-management-page .btn-primary,.batch-management-page .btn-secondary{width:auto;margin-top:0;padding:.65rem .95rem;border-radius:.65rem;font-size:.88rem}.batch-search-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.85rem}.batch-search-input{flex:1 1 15rem;min-width:0;padding:.45rem .7rem;border:1px solid #d6e2ef;border-radius:.55rem;background:#fff;color:#1f2a37;font-size:.9rem}.batch-search-input::placeholder{color:#9aa9b8}.batch-search-input:focus{outline:none;border-color:#7aa7d9;box-shadow:0 0 0 3px #7aa7d92e}.batch-search-count{font-size:.82rem;white-space:nowrap}.settlement-warning-box{display:flex;flex-direction:column;gap:.3rem;margin:.75rem 0;padding:.6rem .8rem;border:1px solid #fca5a5;border-left:4px solid #dc2626;border-radius:.5rem;background:#fef2f2;color:#991b1b;font-size:.85rem;line-height:1.65}.settlement-warning-box strong{color:#b91c1c}.batch-table-shell{margin-top:.8rem;max-height:24rem;overflow:auto;border:1px solid #e5edf5;border-radius:.75rem;background:#fff}.batch-list-table{width:100%;table-layout:fixed;min-width:0}.batch-list-table th,.batch-list-table td{vertical-align:top}.batch-col-main{width:36%}.batch-col-school{width:26%}.batch-col-status{width:20%}.batch-col-check{width:2rem;text-align:center}.batch-col-action{width:5.6rem;white-space:normal}.batch-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;color:#334155;overflow-wrap:anywhere}.batch-name,.batch-school{margin-top:.18rem;font-size:.82rem;font-weight:600;line-height:1.35;color:#0f172a;overflow-wrap:anywhere}.batch-subtle{margin-top:.18rem;font-size:.72rem;line-height:1.3;color:#64748b}.batch-meta-line{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem}.batch-meta-item{display:inline-flex;align-items:center;gap:.18rem;padding:.12rem .34rem;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;font-size:.7rem;color:#64748b}.batch-meta-item strong{color:#1e40af;font-weight:700}.batch-file-list{display:grid;gap:.55rem}.batch-file-list-with-checks{margin-top:.8rem}.batch-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.62rem .75rem;border:1px solid #e5edf5;border-radius:.75rem;background:#fbfdff}.batch-file-list-with-checks .batch-file-row{grid-template-columns:auto minmax(0,1fr) auto}.batch-file-check{display:flex;align-items:center;justify-content:center}.batch-file-main{min-width:0}.batch-file-title{font-size:.86rem;font-weight:600;line-height:1.35;color:#0f172a;overflow-wrap:anywhere}.batch-file-notice{margin-top:.24rem;font-size:.76rem;line-height:1.35;color:#64748b}.batch-file-meta{display:flex;flex-wrap:wrap;gap:.35rem .6rem;margin-top:.28rem;font-size:.74rem;line-height:1.3;color:#64748b}.batch-file-actions{display:flex;justify-content:flex-end;align-items:center}.batch-file-select-all{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;padding:.25rem .45rem;border-radius:.45rem;color:#475569;font-size:.78rem;cursor:pointer}.batch-detail-stack{display:grid;gap:1rem;margin-top:.9rem;min-width:0}.batch-detail-stack>*{min-width:0}@media (max-width: 980px){.batch-management-grid{grid-template-columns:1fr}}@media (max-width: 560px){.batch-col-school{display:none}.batch-col-main{width:54%}.batch-col-status{width:28%}.batch-file-row,.batch-file-list-with-checks .batch-file-row{grid-template-columns:auto minmax(0,1fr)}.batch-file-list:not(.batch-file-list-with-checks) .batch-file-row{grid-template-columns:minmax(0,1fr)}.batch-file-list:not(.batch-file-list-with-checks) .batch-file-actions{grid-column:1;justify-content:flex-start}.batch-file-actions{grid-column:2;justify-content:flex-start}}.info-row{padding:.4rem 0;font-size:.95rem}.formula-box{padding:.7rem 1rem;margin-bottom:1rem;border-radius:.8rem;background:#fef3c7;border:1px solid #f59e0b;font-size:.8rem;color:#92400e;line-height:1.6}.formula-box strong{display:block;margin-bottom:.2rem}.formula-box .highlight{font-size:.85rem;font-weight:700;color:#b45309}.mode-section{margin-top:.8rem;padding-top:.8rem;border-top:1px solid #e3ebf3}.radio-row{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;cursor:pointer}.radio-row input{width:auto;margin:0}.manual-input{margin-top:.5rem}.manual-input label{display:block;font-size:.85rem;margin-bottom:.2rem}.manual-input input{width:100%;padding:.6rem;border:1px solid #bfd0df;border-radius:.6rem}.guide-page{display:grid;gap:1rem}.guide-card{background:#ffffffe6;border-radius:1.25rem;padding:1.5rem;border:1px solid rgba(24,78,119,.1);box-shadow:0 10px 30px #184e770a}.guide-card h2{margin:0 0 .8rem;color:#184e77;font-size:1.2rem}.guide-desc{color:#6b7280;font-size:.9rem;margin-bottom:.8rem}.guide-steps{display:grid;gap:.6rem}.guide-step{display:flex;align-items:center;gap:.7rem;font-size:.9rem}.guide-step .step-num{margin-top:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{background:#fff;border-radius:1.25rem;padding:2rem;max-width:360px;width:90%;box-shadow:0 20px 60px #0003;text-align:center}.modal-card h2{margin:0 0 .5rem;font-size:1.3rem}.price-tag{font-size:1.5rem;font-weight:700;color:#184e77}.qr-container{padding:1rem;background:#fff;border:2px solid #e3ebf3;border-radius:1rem;display:inline-block}.qr-container canvas{display:block;margin:0 auto}.btn-demo{background:#f59e0b;margin-top:.5rem}.btn-demo:hover{background:#d97706}.btn-close{background:transparent;color:#6b7280;margin-top:1rem}.btn-close:hover{background:#f3f4f6}.progress-bar{margin:.8rem 0;padding:.6rem .9rem;background:#eef4fb;border-radius:.75rem;display:flex;align-items:center;gap:.6rem}.progress-fill{width:1rem;height:1rem;border-radius:50%;border:2px solid #184e77;border-top-color:transparent;animation:spin .8s linear infinite}.progress-text{font-size:.85rem;color:#184e77}.task-progress-list{display:grid;gap:.55rem;margin:.9rem 0 .2rem;max-height:16rem;overflow:auto}.task-progress-card{border:1px solid #dbe7f3;border-radius:.9rem;background:#f8fbff;padding:.7rem .75rem;width:100%;max-width:100%;min-width:0;overflow:hidden;box-sizing:border-box}.task-progress-card-inline{margin:.75rem 0}.task-progress-card.status-completed{border-color:#bbf7d0;background:#f0fdf4}.task-progress-card.status-failed{border-color:#fecdd3;background:#fff1f2}.task-progress-card.status-paused{border-color:#fde68a;background:#fffbeb}.task-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;min-width:0}.task-progress-head>:first-child{flex:1;min-width:0}.task-progress-title{font-size:.86rem;font-weight:700;color:#0f172a;overflow-wrap:anywhere}.task-progress-meta{font-size:.7rem;color:#64748b;margin-top:.08rem}.task-progress-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.task-progress-percent{font-size:.78rem;font-weight:700;color:#184e77}.task-progress-clear{font-size:.72rem;padding:.18rem .45rem}.task-progress-track{width:100%;height:.42rem;border-radius:999px;overflow:hidden;background:#dbe7f3;margin-top:.45rem}.task-progress-value{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#38bdf8)}.task-progress-card.status-completed .task-progress-value{background:linear-gradient(90deg,#16a34a,#4ade80)}.task-progress-card.status-failed .task-progress-value{background:linear-gradient(90deg,#dc2626,#fb7185)}.task-progress-card.status-paused .task-progress-value{background:linear-gradient(90deg,#d97706,#fbbf24)}.task-progress-detail{margin-top:.38rem;font-size:.74rem;color:#1e293b;line-height:1.45;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.task-progress-note{margin-top:.35rem;font-size:.7rem;line-height:1.4;color:#64748b;overflow-wrap:anywhere}.task-progress-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.45rem;margin-top:.45rem;min-width:0}.task-progress-stat{min-width:0;padding:.42rem .5rem;border-radius:.65rem;background:#ffffffbf;display:grid;gap:.16rem}.task-progress-stat span{font-size:.68rem;color:#64748b;overflow-wrap:anywhere}.task-progress-stat strong{font-size:.78rem;color:#0f172a;line-height:1.3;overflow-wrap:anywhere;word-break:break-word}.task-progress-log{margin-top:.4rem;border-radius:.7rem;background:#eaf2fb;padding:.35rem .45rem;display:grid;gap:.16rem;max-height:3.2rem;overflow:auto;min-width:0}.task-progress-card.status-completed .task-progress-log{background:#eaf8ef}.task-progress-card.status-failed .task-progress-log{background:#ffe8ec}.task-progress-card.status-paused .task-progress-log{background:#fef3c7}.task-progress-log-line{font-size:.68rem;line-height:1.28;color:#475569;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.stack{display:grid;gap:.6rem}.muted{color:#6b7280;font-size:.85rem}.error{color:#9f1239;background:#ffe4e6;border:1px solid #fecdd3;padding:.6rem .8rem;border-radius:.6rem;font-size:.85rem}.error-banner{composes:error;margin-bottom:1rem}.preview{white-space:pre-wrap;overflow:auto;background:#0f172a;color:#dbeafe;padding:1rem;border-radius:1rem;max-height:320px;font-size:.8rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.tab-btn{padding:.5rem .8rem;font-size:.8rem}.tab-btn:not(.active) .tab-label{display:none}.tab-icon{font-size:1.3rem}.tab-grid{grid-template-columns:1fr}.step-guide{flex-wrap:wrap}.step-arrow{display:none}.message-board-head{align-items:flex-start;flex-direction:column}.message-board-form{grid-template-columns:1fr}.message-board-form button{width:100%}.message-board-text{max-width:18rem}.task-progress-head{flex-direction:column}.task-progress-actions{width:100%;justify-content:space-between}.att-page-header h1{font-size:.95rem}.att-page-header{padding:.4rem .8rem;gap:.4rem}.att-page-controls{padding:.4rem .8rem}.att-filters{flex-wrap:wrap}.att-filters select{font-size:.78rem;padding:.25rem .4rem}.att-action-bar{gap:.4rem}.att-action-group,.att-action-group.grid-1,.att-action-group.grid-2,.att-action-group.grid-3,.att-action-group.grid-4{flex:1 1 100%;padding:.45rem .5rem .5rem}.att-grid-3,.att-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.att-action-btn{padding:.5rem .45rem;min-height:2.2rem;font-size:.76rem}.att-confirmation-panel{margin:0 .8rem .8rem;padding:.65rem .75rem}.att-confirmation-copy{width:100%}.att-confirmation-list{max-height:11rem}.att-cell-btn{font-size:.7rem}.att-session-num{font-size:.65rem}.att-session-date{font-size:.55rem}.att-legend{gap:.5rem;font-size:.7rem}.att-full-page{padding:.5rem .6rem 1rem}.att-page-header{padding:.35rem .15rem .45rem}.att-page-controls{padding:.55rem .7rem .65rem}.att-usage-card{padding:.6rem .75rem .7rem}.att-usage-list{font-size:.76rem;line-height:1.6}.att-remark-bar{padding:.45rem .6rem .5rem;gap:.4rem}.att-remark-label{font-size:.76rem}.att-remark-input{font-size:.78rem;padding:.38rem .5rem}.att-remark-status{min-width:0}}.pay-modal{max-width:340px;width:92%;padding:1.5rem;border-radius:.75rem;background:#fff;text-align:center}.pay-header{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.pay-logo{height:2.2rem}.pay-title{font-size:1.1rem;margin:0;color:#111}.pay-subtitle{font-size:.75rem;color:#6b7280;margin:.15rem 0 0}.pay-amount{margin:.6rem 0 .8rem}.pay-yen{font-size:1.1rem;color:#f97316;font-weight:600}.pay-num{font-size:1.8rem;font-weight:700;color:#f97316}.pay-qr-wrap{background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;padding:.6rem;display:inline-block}.pay-qr{display:block;width:220px;height:220px}.pay-hint{font-size:.82rem;color:#374151;margin:.5rem 0 0;font-weight:500}.pay-body{display:flex;flex-direction:column;align-items:center;gap:.5rem}.pay-loading{padding:2rem 0;color:#6b7280}.pay-error{padding:1rem 0}.error-text{color:#dc2626;font-size:.85rem}.pay-close{margin-top:.8rem;background:none;border:none;color:#9ca3af;font-size:.85rem;cursor:pointer;padding:.3rem 1rem}.pay-close:hover{color:#6b7280}.spinner{display:inline-block;width:2rem;height:2rem;border:3px solid #e5e7eb;border-top-color:#f97316;border-radius:50%;animation:spin .7s linear infinite;margin-bottom:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.batch-manager{margin-bottom:.8rem}.btn-batcher{padding:.4rem .8rem;background:#f1f5f9;border:1px solid var(--border);border-radius:.5rem;cursor:pointer;font-size:.82rem;color:var(--text-light)}.btn-batcher:hover{background:#e2e8f0;color:var(--text)}.batch-list{margin-top:.5rem;background:#fff;border:1px solid var(--border);border-radius:.6rem;padding:.6rem;max-height:300px;overflow-y:auto}.batch-table{width:100%;border-collapse:collapse;font-size:.82rem}.batch-table th{background:#f8fafc;padding:.35rem .5rem;text-align:left;border-bottom:1px solid var(--border)}.batch-table td{padding:.35rem .5rem;border-bottom:1px solid #f1f5f9}.batch-active td{background:#eef2ff}.batch-expiry{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;background:#ecfdf5;color:#166534;font-size:.72rem;font-weight:600;white-space:nowrap}.batch-expiry.expired{background:#fef2f2;color:#b91c1c}.btn-sm{padding:.2rem .5rem;border:1px solid var(--border);background:#fff;border-radius:.3rem;cursor:pointer;font-size:.75rem;margin-right:.25rem;color:var(--primary)}.btn-sm:hover{background:#eef2ff}.btn-danger{color:#dc2626;border-color:#fecaca}.btn-danger:hover{background:#fef2f2}.bank-info-bar{margin-bottom:.5rem}.bank-info-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;font-size:.8rem}.bank-info-icon{font-size:1rem}.bank-info-name{font-weight:600;color:#166534}.bank-info-meta{color:#6b7280;font-size:.75rem}.bank-info-download{text-decoration:none;display:inline-flex;align-items:center}.team-page{min-height:100vh;display:flex;flex-direction:column;background:#f8fafc}.team-page-topbar{height:4px;background:linear-gradient(90deg,var(--primary),#8b5cf6,var(--accent))}.team-page-header{background:#fff;border-bottom:1px solid var(--border)}.team-page-header-inner{max-width:1180px;margin:0 auto;padding:.6rem .9rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.team-page-back{font-size:.76rem;color:var(--muted);text-decoration:none;padding:.3rem .6rem;border-radius:.4rem;border:1px solid var(--border);background:#f8fafc;white-space:nowrap}.team-page-back:hover{color:var(--primary);border-color:var(--primary-light);background:#eef2ff}.team-page-brand{display:flex;flex-direction:column;min-width:0}.team-page-title{font-size:1.02rem;font-weight:800;color:var(--text);letter-spacing:-.01em}.team-page-sub{font-size:.72rem;color:var(--muted)}.team-page-account{margin-left:auto;display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-light)}.team-page-linkbtn{border:1px solid var(--border);background:#fff;color:var(--text-light);border-radius:.35rem;padding:.25rem .55rem;font-size:.75rem;cursor:pointer}.team-page-linkbtn:hover{color:var(--primary);border-color:var(--primary-light)}.team-page-body{flex:1}.team-gate{max-width:380px;margin:10vh auto 0;background:#fff;border:1px solid var(--border);border-radius:12px;padding:1.6rem 1.3rem;text-align:center}.team-gate h2{margin:0 0 .5rem;font-size:1rem;color:var(--text)}.team-gate p{margin:0 0 1rem;font-size:.82rem;color:var(--text-light);line-height:1.7}.team-workbench{max-width:1320px;margin:0 auto;padding:0 .9rem 3rem;width:100%}.team-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem;align-items:start}@media (max-width: 940px){.team-cards{grid-template-columns:1fr}}@media (max-width: 560px){.team-page-sub{display:none}.team-page-header-inner{padding:.5rem .7rem}.team-workbench{padding:0 .55rem 2rem}}.team-main{flex:1;width:100%}.team-toolbar .btn-primary,.team-toolbar .btn-secondary,.team-actions .btn-primary,.team-actions .btn-secondary{width:auto;margin-top:0;padding:.35rem .65rem;border-radius:.5rem;font-size:.78rem;font-weight:600}.team-workbench .team-mini{width:auto;padding:.3rem .6rem;border-radius:.5rem;font-size:.78rem;white-space:nowrap}.team-mx-switch{display:inline-flex;align-items:center;gap:.28rem;padding:.28rem .5rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;font-size:.78rem;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.team-mx-switch:hover{border-color:#9ca3af;background:#fafafa}.team-mx-switch input{width:13px;height:13px;margin:0;accent-color:#f59e0b;cursor:pointer}.team-info-list{display:flex;flex-direction:column;gap:.55rem}.team-info-member{border:1px solid #eef1f5;border-radius:8px;background:#fcfdfe;padding:.5rem .6rem}.team-info-member.is-inactive{opacity:.6}.team-info-member-head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.team-info-name{font-size:.9rem;font-weight:700;color:#111827}.team-info-role{font-size:.66rem;padding:.05rem .34rem;border-radius:3px;background:#f1f5f9;color:#64748b}.team-info-role.is-leader{background:#fef3c7;color:#92400e}.team-info-off{font-size:.66rem;color:#dc2626}.team-info-stat{font-size:.72rem;color:#94a3b8}.team-info-member-head .team-mini-link{margin-left:auto}.team-mini-link{border:none;background:transparent;color:#2563eb;cursor:pointer;font-size:.74rem;padding:.1rem .25rem;border-radius:4px}.team-mini-link:hover{background:#eff6ff}.team-mini-link.is-danger{color:#dc2626}.team-mini-link.is-danger:hover{background:#fef2f2}.team-info-empty{margin:.3rem 0 0;font-size:.76rem;color:#b6bec9}.team-duty-strip{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;border:1px dashed #e2e8f0;border-radius:7px;background:#fbfcfe;padding:.26rem .45rem;margin-bottom:.4rem;font-size:.72rem;color:#64748b}.team-duty-badge{font-size:.64rem;font-weight:700;color:#0369a1;background:#e0f2fe;border-radius:3px;padding:.05rem .3rem}.team-duty-item b{color:#1f2937;font-weight:600}.team-duty-sep{color:#cbd5e1}.team-rows{display:flex;flex-direction:column;gap:.3rem;margin-top:.35rem}.team-row{border:1px solid #eef1f5;border-left:3px solid #94a3b8;border-radius:6px;background:#fff;padding:.2rem .35rem .18rem;display:flex;flex-direction:column;gap:.1rem}.team-row.has-miss{background:#fffdf7}.team-row-top{display:flex;align-items:center;gap:.25rem}.team-in{height:21px;padding:0 .3rem;font-size:.76rem;color:#1f2937;border:1px solid transparent;border-radius:4px;background:transparent;min-width:0;outline:none;font-family:inherit}.team-in:hover{border-color:#e5e7eb;background:#fcfdfe}.team-in:focus{border-color:#93c5fd;background:#fff;box-shadow:0 0 0 2px #dbeafe}.team-in::placeholder{color:#c7cdd6}.team-in.is-miss{border-color:#fbd5a5;background:#fff9f0}.team-in.is-miss::placeholder{color:#d97706}.team-in:disabled{color:#4b5563;cursor:default}.team-in-name{flex:1 1 auto;font-weight:600;font-size:.8rem}.team-in-role{flex:0 0 60px;padding-right:.05rem;font-size:.72rem;color:#6b7280}.team-in-num{flex:0 0 52px;text-align:right;font-variant-numeric:tabular-nums}.team-in-unit{font-size:.66rem;color:#9ca3af;flex:0 0 auto}.team-in-remark{font-size:.68rem;color:#9ca3af}.team-row-line{display:flex;align-items:center;gap:.22rem;flex-wrap:wrap}.team-row-status{font-size:.64rem;color:#cbd5e1;flex:0 0 auto;min-width:3.4em;text-align:right}.team-row-status.is-saved{color:#16a34a}.team-row-status.is-failed,.team-row-status.is-need-name{color:#dc2626}.team-row-del{flex:0 0 auto;border:none;background:transparent;color:#cbd5e1;cursor:pointer;font-size:.9rem;line-height:1;padding:0 .1rem}.team-row-del:hover{color:#dc2626}.team-wd{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.team-wd-btn{width:17px;height:17px;padding:0;border-radius:3px;cursor:pointer;border:1px solid #e5e7eb;background:#fff;color:#9ca3af;font-size:.6rem;line-height:1;font-family:inherit}.team-wd-btn:hover{border-color:#f59e0b}.team-wd-btn.is-on{border-color:#f59e0b;background:#fef3c7;color:#92400e;font-weight:700}.team-wd-btn:disabled{cursor:default}.team-wd-hint{font-size:.62rem;color:#d97706;white-space:nowrap}.team-row.is-open{background:#fff;padding-bottom:.24rem}.team-row.is-help{border-left-style:dashed;background:#fbfbff}.team-row-summary{display:flex;align-items:center;gap:.32rem;flex-wrap:wrap;min-height:26px;padding:.08rem 0}.team-row-toggle{display:inline-flex;align-items:center;gap:.18rem;border:none;background:transparent;cursor:pointer;padding:.06rem .1rem;border-radius:5px;min-width:0;flex:0 0 auto;max-width:42%}.team-row-toggle:hover{background:#eff6ff}.team-row-caret{font-size:.68rem;color:#94a3b8;flex:0 0 auto;line-height:1}.team-row-school{font-size:.82rem;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.team-row-helpbadge{font-size:.6rem;font-weight:600;color:#7c3aed;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:3px;padding:0 .22rem;flex:0 0 auto}.team-row-owners{display:inline-flex;align-items:center;gap:.18rem;flex-wrap:wrap;min-width:0;cursor:pointer}.team-row-owners-label{font-size:.62rem;color:#b6bec9;flex:0 0 auto}.team-owner-chip{font-size:.68rem;line-height:1.6;color:#4b5563;background:#f1f5f9;border-radius:999px;padding:0 .34rem;display:inline-flex;align-items:center;gap:.12rem;white-space:nowrap}.team-owner-chip i{font-style:normal;font-size:.58rem;font-weight:700;color:#fff;background:#2563eb;border-radius:999px;padding:0 .16rem;line-height:1.5}.team-owner-chip.is-primary{color:#1e40af;background:#e0ecff;font-weight:600}.team-row-meta{font-size:.68rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:7.5em}.team-row-body{border-top:1px dashed #eef1f5;margin-top:.14rem;padding-top:.22rem;display:flex;flex-direction:column;gap:.1rem}.team-row-help{margin:.1rem 0;font-size:.72rem;color:#64748b;line-height:1.7}.team-row-help .team-mini-link{margin-left:.3rem}.team-info-grid{display:flex;flex-direction:column;gap:.4rem}.team-info-member-head{gap:.3rem}.team-info-member-toggle{display:inline-flex;align-items:center;gap:.28rem;border:none;background:transparent;cursor:pointer;padding:.1rem .16rem;border-radius:6px;min-width:0;flex:1 1 auto;text-align:left}.team-info-member-toggle:hover{background:#eff6ff}.team-info-member:not(.is-open){padding:.32rem .5rem;background:#fff}.team-info-collapsed{margin:.1rem 0 0 1.05rem;font-size:.72rem;color:#a8b2bf;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-help-toggle{display:flex;align-items:flex-start;gap:.36rem;border:1px solid #ddd6fe;background:#f5f3ff;border-radius:7px;padding:.42rem .52rem;margin:0 0 .7rem;font-size:.74rem;color:#5b21b6;line-height:1.65;cursor:pointer}.team-help-toggle input{margin:.15rem 0 0;accent-color:#7c3aed;flex:0 0 auto}.team-help-toggle b{color:#4c1d95;font-weight:700}.team-card{border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 6px 18px #0f172a0a;padding:.7rem .85rem .8rem}.team-card-tabs{display:flex;flex-direction:column;min-width:0;margin-bottom:0}.team-tabbar{display:flex;align-items:stretch;gap:.15rem;border-bottom:1px solid #e8ecf2;margin:-.7rem -.85rem .6rem;padding:0 .55rem;overflow-x:auto;scrollbar-width:none}.team-tabbar::-webkit-scrollbar{display:none}.team-tab{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;gap:.32rem;border:none;background:transparent;cursor:pointer;padding:.55rem .7rem .5rem;font-size:.84rem;font-weight:600;color:#7c8797;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s ease,border-color .12s ease}.team-tab:hover{color:#334155}.team-tab.is-active{color:var(--primary, #2563eb);border-bottom-color:var(--primary, #2563eb)}.team-tab-icon{font-size:.9rem;line-height:1}.team-tab-label{line-height:1.2}.team-tab-count{font-size:.66rem;font-weight:600;color:#94a3b8;background:#f1f5f9;border-radius:999px;padding:.02rem .32rem}.team-tab.is-active .team-tab-count{background:#e0ecff;color:#2563eb}.team-tabpanel{flex:1 1 auto;min-height:0;flex-direction:column}.team-tabpanel>.team-mx-wrap{flex:1 1 auto;min-height:0}.team-tabpanel>.team-hmx-wrap{flex:1 1 auto;min-height:0}.team-more-body{display:flex;flex-direction:column;min-height:0}.team-panel-bar{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-bottom:.45rem}.team-range-note{font-size:.74rem;color:#64748b;font-variant-numeric:tabular-nums}.team-range-hint{color:#a8b2bf}.team-range-warn{font-size:.72rem;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;padding:0 .42rem}.team-termhint{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.76rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.3rem .5rem;margin-bottom:.45rem}@media (max-width: 640px){.team-card{padding:.55rem .5rem .6rem}.team-tabbar{margin:-.55rem -.5rem .5rem;padding:0 .3rem}.team-tab{padding:.5rem .5rem .46rem;font-size:.8rem}.team-tab-count{display:none}}.team-mx-filters{border:1px dashed #e2e8f0;border-radius:8px;padding:.45rem .55rem;margin-bottom:.5rem;background:#fbfcfe}.team-mx-filter-row{display:flex;align-items:flex-start;gap:.45rem;margin-bottom:.3rem}.team-mx-filter-label{flex:0 0 2.2rem;font-size:.72rem;color:#64748b;padding-top:.14rem}.team-mx-filter-chips{display:flex;flex-wrap:wrap;gap:.25rem}.team-mx-filter-empty{font-size:.72rem;color:#b6bec9}.team-mx-legend{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.45rem;font-size:.72rem;color:#6b7280}.team-mx-legend-item{display:inline-flex;align-items:center;gap:.22rem}.team-mx-legend-swatch{width:12px;height:12px;border-radius:3px;border:1px solid transparent;display:inline-block}.team-mx-legend-dot{width:8px;height:8px;border-radius:2px;display:inline-block;background:linear-gradient(90deg,#2563eb 0,#2563eb 50%,#16a34a 50%,#16a34a)}.team-mx-legend-stat{margin-left:auto;color:#94a3b8}.team-mx-wrap{max-height:68vh;overflow:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff;position:relative}.team-mx{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.team-mx .team-mx-col-date{width:92px}.team-mx .team-mx-col-task{width:36px}.team-mx .team-mx-col-task.is-sop{width:72px}.team-mx-td-sop{padding:0}.team-mx-td-sop.is-plan{background-image:linear-gradient(#0e74900f,#0e74900f)}.team-mx-td-sop .team-mx-tick{color:#fff;text-shadow:0 0 2px rgba(15,23,42,.45)}.team-mx-spacer{border:none!important;background:transparent!important;width:auto}.team-mx-hollow{position:sticky;top:0;z-index:3;border-bottom:1px solid #e5e7eb;background:#f8fafc;background-image:repeating-linear-gradient(45deg,#f1f5f9 0 6px,transparent 6px 12px);text-align:center;vertical-align:middle;padding:0 .6rem}.team-mx-hollow span{font-size:.78rem;color:#a9b2bf}.team-mx th,.team-mx td{padding:0}.team-mx-bandrow th{position:sticky;top:0;z-index:5;height:22px}.team-mx-band{box-sizing:border-box;height:22px;padding:0 .32rem!important;font-size:.62rem;font-weight:700;letter-spacing:.02em;text-align:left;vertical-align:middle;white-space:nowrap;overflow:hidden;border-bottom:2px solid #e2e8f0}.team-mx-band-count{margin-left:.26rem;font-size:.55rem;font-weight:600;opacity:.62;font-variant-numeric:tabular-nums}.team-mx-band+.team-mx-band{border-left:3px solid #fff}.team-mx-grouprow th{position:sticky;top:22px;z-index:4}.team-mx-grouprow th.team-mx-corner,.team-mx-bandrow th.team-mx-corner{z-index:7}.team-mx-group{height:30px;box-sizing:border-box;padding:0 .06rem!important;background-color:#f8fafc;border-bottom:1px solid #e5e7eb;border-left:1px solid #e8ecf2;text-align:center;vertical-align:middle;overflow:hidden}.team-mx-group.is-all{background:#f8fafc;border-left-color:#e5e7eb}.team-mx-groupbtn{display:inline-block;width:100%;vertical-align:middle;border:none;background:transparent;cursor:pointer;font-size:.56rem;font-weight:700;line-height:1.12;padding:.04rem 0;border-radius:4px;white-space:normal;word-break:break-all;overflow:hidden;max-height:28px;text-align:center}.team-mx-groupbtn:hover{background:#2563eb17;text-decoration:underline}.team-mx-groupname{font-size:.62rem;color:#94a3b8}.team-mx-corner{position:sticky;top:0;left:0;z-index:6;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;font-size:.7rem;color:#94a3b8;font-weight:600;width:92px;min-width:92px;height:172px;vertical-align:top;text-align:left;padding:.25rem .3rem}.team-mx-th{position:sticky;top:52px;z-index:3;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:1px solid #f1f5f9;border-top:3px solid #94a3b8;width:36px;min-width:36px;height:120px;vertical-align:top}.team-mx-head{height:100%;padding:.12rem .1rem .14rem;display:flex;flex-direction:column;gap:.05rem;text-align:left}.team-mx-head-top{display:flex;align-items:center;gap:.1rem;height:12px}.team-mx-head-top .team-mx-auto,.team-mx-head-top .team-mx-del{margin-left:auto}.team-mx-swatch{width:6px;height:6px;border-radius:2px;border:1px solid transparent;flex:0 0 auto}.team-mx-owner-v{writing-mode:vertical-rl;flex:0 0 auto;font-size:.56rem;font-weight:500;color:#a8b2bf;max-height:100%;max-width:1.2em;overflow:hidden;word-break:break-all;white-space:normal}.team-mx-del{border:none;background:transparent;color:#cbd5e1;cursor:pointer;font-size:.72rem;line-height:1;padding:0;flex:0 0 auto}.team-mx-del:hover{color:#dc2626}.team-mx-auto{flex:0 0 auto;font-size:.5rem;line-height:1.3;color:#0369a1;background:#e0f2fe;border-radius:2px;padding:0 .06rem}.team-mx-vbox{flex:1 1 auto;min-height:0;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:.04rem;overflow:hidden;padding:.02rem 0}.team-mx-title,.team-mx-school{writing-mode:vertical-rl;max-height:100%;max-width:2.3em;overflow:hidden;word-break:break-all;white-space:normal}.team-mx-title{font-size:.68rem;font-weight:700;color:#111827;line-height:1.12;letter-spacing:.01em}.team-mx-th.is-ledger .team-mx-title{font-size:.56rem;font-weight:600;letter-spacing:0}.team-mx-school{font-size:.6rem;color:#6b7280;line-height:1.12}.team-mx-dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto}.team-mx-count{font-size:.56rem;color:#9ca3af;margin-top:auto;white-space:nowrap;text-align:center}.team-jumps{display:flex;gap:.3rem;flex:0 0 auto;margin-left:auto}.team-jump{font-size:.68rem;line-height:1.6;text-decoration:none;white-space:nowrap;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:0 .42rem}.team-jump:hover{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.team-mx-row{background:#fff}.team-mx-row.is-weekend{background:#fcfcfd}.team-mx-row.is-today{background:#fffbeb}.team-mx-row.is-today .team-mx-date{background:#fef3c7;box-shadow:inset 3px 0 #f59e0b}.team-mx-row.is-today .team-mx-date-num{color:#92400e;font-weight:700}.team-mx-date{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid #e5e7eb;border-bottom:1px solid #f3f4f6;padding:.15rem .35rem;text-align:left;font-weight:400;display:flex;align-items:center;gap:.25rem;white-space:nowrap;width:92px;min-width:92px;height:28px}.team-mx-row.is-weekend .team-mx-date{background:#fcfcfd}.team-mx-date-num{font-size:.74rem;color:#374151;font-variant-numeric:tabular-nums}.team-mx-date-week{font-size:.66rem;color:#9ca3af}.team-mx-today-badge{font-size:.6rem;color:#92400e;background:#fde68a;border-radius:3px;padding:0 .2rem}.team-mx-td{position:relative;border-bottom:1px solid #f6f7f9;border-right:1px solid #f6f7f9;height:28px;text-align:center;vertical-align:middle}.team-mx-cell{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:1px;width:auto;height:auto;margin:0;padding:0;border:none;border-radius:0;background:transparent;cursor:pointer;font-size:.72rem;line-height:1;overflow:hidden;transition:box-shadow .1s ease}.team-mx-cell:hover{box-shadow:inset 0 0 0 999px #0f172a12}.team-mx-cell:disabled{cursor:default}.team-mx-tick{font-size:.72rem;line-height:1;flex:0 0 auto}.team-mx-by{font-size:.48rem;line-height:1;opacity:.92;white-space:nowrap;overflow:hidden;max-width:24px}.team-mx-legend-plan{width:12px;height:12px;border-radius:3px;display:inline-block;background:#e2e8f0}.team-mx-legend-done{width:12px;height:12px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;font-size:.56rem;line-height:1}.team-mx-hint{margin:.45rem 0 0;font-size:.72rem;color:#9ca3af;line-height:1.6}.team-hmx-wrap{max-height:68vh;overflow:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff;position:relative}.team-hmx{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%}.team-hmx .team-hmx-col-school{width:76px}.team-hmx .team-hmx-col-task{width:92px}.team-hmx .team-hmx-col-day{width:40px}.team-hmx th,.team-hmx td{padding:0}.team-hmx thead th{position:sticky;top:0;z-index:5}.team-hmx-corner{left:0;z-index:7!important;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;font-size:.64rem;font-weight:600;color:#94a3b8;text-align:left;padding:.2rem .3rem!important;height:34px;vertical-align:middle}.team-hmx-day{width:40px;min-width:40px;height:34px;vertical-align:middle;text-align:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:1px solid #f1f5f9;color:#64748b;font-weight:400}.team-hmx-day.is-weekend{background:#f6f7f9}.team-hmx-day.is-month{border-left:1px solid #cbd5e1}.team-hmx-day.is-today{background:#fef3c7;color:#92400e}.team-hmx-day-num{display:block;font-size:.6rem;line-height:1.25;font-variant-numeric:tabular-nums}.team-hmx-day-week{display:block;font-size:.52rem;line-height:1.2;color:#9ca3af}.team-hmx-day.is-today .team-hmx-day-week{color:#b45309}.team-hmx-school{position:sticky;left:0;z-index:4;width:76px;min-width:76px;vertical-align:middle;text-align:center;background-color:#fafbfc;border-right:1px solid #e5e7eb;border-bottom:1px solid #f1f5f9;border-left:3px solid #94a3b8;padding:.1rem .06rem!important}.team-hmx-schoolbtn{display:inline-block;width:100%;border:none;background:transparent;cursor:pointer;font-size:.62rem;font-weight:700;line-height:1.12;white-space:normal;word-break:break-all;overflow:hidden;padding:.04rem 0;border-radius:4px;text-align:center}.team-hmx-schoolbtn:hover{background:#2563eb17;text-decoration:underline}.team-hmx-all{font-size:.62rem;color:#94a3b8}.team-hmx-task{position:sticky;left:76px;z-index:4;width:92px;min-width:92px;height:30px;vertical-align:middle;text-align:left;background:#fff;border-right:1px solid #e5e7eb;border-bottom:1px solid #f6f7f9;padding:0 .22rem!important}.team-hmx-taskline{display:flex;align-items:center;gap:.1rem;white-space:nowrap;overflow:hidden;line-height:1.25}.team-hmx-taskline.is-sub{color:#9ca3af}.team-hmx-swatch{display:inline-block;width:6px;height:6px;border-radius:2px;border:1px solid transparent;flex:0 0 auto}.team-hmx-title{font-size:.68rem;font-weight:600;color:#111827;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.team-hmx-owner{font-size:.56rem;color:#a8b2bf;flex:0 0 auto}.team-hmx-count{font-size:.56rem;color:#9ca3af;margin-left:auto;flex:0 0 auto}.team-hmx-auto{font-size:.5rem;color:#0369a1;background:#e0f2fe;border-radius:2px;padding:0 .06rem;flex:0 0 auto}.team-hmx-del{border:none;background:transparent;color:#cbd5e1;cursor:pointer;font-size:.72rem;line-height:1;padding:0 0 0 .1rem;flex:0 0 auto}.team-hmx-del:hover{color:#dc2626}.team-hmx-td{position:relative;width:40px;min-width:40px;height:30px;border-right:1px solid #f6f7f9;border-bottom:1px solid #f6f7f9;vertical-align:middle}.team-hmx-td.is-weekend{background:#fcfcfd}.team-hmx-td.is-today{background:#fffbeb}.team-hmx-cell{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:1px;width:auto;height:auto;margin:0;padding:0;border:none;border-radius:0;background:transparent;cursor:pointer;font-size:.7rem;line-height:1;overflow:hidden;transition:box-shadow .1s ease}.team-hmx-cell:hover{box-shadow:inset 0 0 0 999px #0f172a12}.team-hmx-cell:disabled{cursor:default}.team-hmx-tick{font-size:.7rem;line-height:1;flex:0 0 auto}.team-hmx-by{font-size:.46rem;line-height:1;opacity:.92;white-space:nowrap;overflow:hidden;max-width:24px}.team-hmx-row:hover .team-hmx-task{background:#f8fafc}.team-hmx-hollow{height:40px;text-align:center;font-size:.78rem;color:#a9b2bf;background:#f8fafc;border-bottom:1px solid #e5e7eb}.team-more{border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:.55rem .8rem}.team-more>summary{cursor:pointer;font-size:.88rem;font-weight:600;color:#374151;display:flex;align-items:center;gap:.4rem;list-style:none}.team-more>summary::-webkit-details-marker{display:none}.team-more>summary:before{content:"▸";color:#9ca3af;font-size:.8rem}.team-more[open]>summary:before{content:"▾"}.team-more-count{font-size:.68rem;color:#6b7280;background:#f1f5f9;border-radius:999px;padding:0 .35rem}.team-more-body{margin-top:.55rem}.team-school-summary{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .65rem;margin-bottom:.5rem;background:#f8fafc;border:1px solid #e8ecf2;border-radius:8px;font-size:.76rem;color:#475569}.team-school-sum-item{display:inline-flex;align-items:center;gap:.24rem;white-space:nowrap}.team-school-sum-item b{color:#0f172a;font-size:.86rem;font-variant-numeric:tabular-nums}.team-school-sum-sep{width:1px;height:12px;background:#dbe3ec}.team-school-sum-bar{width:66px;height:5px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-left:.24rem;display:inline-block;vertical-align:middle}.team-school-sum-bar i{display:block;height:100%;background:#7c3aed;border-radius:999px;transition:width .2s}.team-school-sum-hot{font-size:.7rem;color:#92400e;background:#fde68a;border-radius:999px;padding:.06rem .45rem;font-weight:600;white-space:nowrap}.team-school-sortlabel{font-size:.72rem;color:#94a3b8}.team-school-list{display:flex;flex-direction:column;gap:3px}.team-school-row{display:grid;grid-template-columns:4px minmax(88px,1.25fr) 1.05fr .95fr .5fr 1.15fr 1.1fr 72px;align-items:center;gap:.5rem;padding:.34rem .55rem;background:#fff;border:1px solid #eef2f7;border-radius:7px;transition:border-color .12s,box-shadow .12s}.team-school-row:hover{border-color:#dbe3ec;box-shadow:0 1px 6px #0f172a0f}.team-school-row.is-today{background:#fffdf5;border-color:#fde68a}.team-school-bar{width:4px;height:26px;border-radius:999px}.team-school-name{border:none;background:transparent;cursor:pointer;padding:0;font-size:.82rem;font-weight:700;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-school-name:hover{text-decoration:underline}.team-school-cell{display:flex;flex-direction:column;gap:1px;min-width:0}.team-school-k{font-size:.6rem;color:#a8b2bf;letter-spacing:.02em}.team-school-v{font-size:.76rem;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-school-v em{font-style:normal;color:#94a3b8;margin-left:.2rem;font-size:.7rem}.team-school-cell.is-num .team-school-v{font-variant-numeric:tabular-nums;font-weight:600}.team-school-progress{display:flex;align-items:center;gap:.3rem}.team-school-bar-track{flex:1 1 auto;height:7px;border-radius:999px;background:#eef2f7;overflow:hidden;min-width:34px}.team-school-bar-track i{display:block;height:100%;border-radius:999px;transition:width .2s}.team-school-bar-num{font-size:.7rem;color:#64748b;font-variant-numeric:tabular-nums;white-space:nowrap}.team-school-bar-num.is-done{color:#15803d;font-weight:700}.team-school-links{display:flex;gap:.25rem;flex-wrap:nowrap;overflow:hidden}.team-school-links .team-jump{font-size:.64rem;line-height:1.5;padding:0 .34rem}.team-school-nolink{font-size:.64rem;color:#cbd5e1}.team-school-row .team-mini-link{white-space:nowrap;font-size:.7rem}@media (max-width: 860px){.team-school-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem}.team-school-cell,.team-school-progress{flex:1 1 40%}.team-school-links,.team-school-row .team-mini-link{flex:0 0 auto}}.team-day-tag{display:inline-block;font-size:.54rem;line-height:1.3;padding:0 2px;border-radius:3px;background:#fee2e2;color:#b91c1c;font-weight:700;white-space:nowrap}.team-day-tag.is-makeup{background:#ccfbf1;color:#0f766e}.team-mx-date .team-day-tag{margin-left:auto}.team-hmx-day{position:relative}.team-hmx-day .team-day-tag{position:absolute;top:1px;right:1px;margin-left:0;font-size:.5rem;line-height:1.1;padding:0 1px}.team-hmx-day.is-holiday{background:#fff1f2}.team-hmx-day.is-makeup{background:#f0fdfa}.team-mx-row.is-weekend .team-mx-date .team-day-tag{margin-left:auto}.team-mx-td.is-shift:after,.team-hmx-td.is-shift:after{content:"";position:absolute;left:2px;bottom:2px;width:5px;height:2px;border-radius:1px;background:#f59e0b;pointer-events:none}.team-mx-legend-shift{display:inline-block;width:10px;height:10px;border-radius:2px;background:linear-gradient(135deg,#f59e0b 0 50%,transparent 50% 100%);border:1px solid #fcd34d}.team-scope-badge{font-size:.66rem;padding:.05rem .4rem;border-radius:999px;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;white-space:nowrap}.team-scope-badge.is-all{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.team-info-phone{font-size:.7rem;color:#6b7280;margin-left:.3rem;white-space:nowrap}.team-info-role.is-deputy{background:#dbeafe;color:#1d4ed8}.team-holiday-note{margin:0 0 .4rem;font-size:.74rem;color:#6b7280;line-height:1.65}.team-holiday-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.22rem;max-height:240px;overflow:auto}.team-holiday-list li{display:flex;align-items:center;gap:.4rem;font-size:.78rem;padding-bottom:.2rem;border-bottom:1px dashed #f1f5f9}.team-holiday-name{font-weight:600;color:#111827;min-width:88px}.team-holiday-range{color:#6b7280;font-variant-numeric:tabular-nums}.team-holiday-tag{font-size:.62rem;background:#fef3c7;color:#92400e;border-radius:3px;padding:0 .25rem}.team-form-check{display:flex;gap:.4rem;align-items:flex-start;font-size:.78rem;color:#4b5563;margin:0 0 .6rem;line-height:1.55}.team-form-check input{margin-top:.15rem;flex:0 0 auto}.team-form-check-hint{display:block;font-size:.7rem;color:#9ca3af}.app-team-link{position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:.78rem;color:#4338ca;text-decoration:none;white-space:nowrap;padding:.35rem .7rem;border-radius:.4rem;border:1px solid #c7d2fe;background:#eef2ff}.app-team-link:hover{background:#e0e7ff}.team-form-actions{display:flex;gap:.5rem;align-items:stretch}.team-form-actions>.btn-primary,.team-form-actions>.btn-secondary{width:auto;min-width:0;margin-top:0;padding:.72rem 1rem;font-size:.92rem;line-height:1.2;white-space:nowrap;border-radius:.7rem}.team-form-actions>.btn-primary{flex:1 1 auto}.team-form-actions>.btn-secondary{flex:0 0 34%}.team-info-actions{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}.team-info-member-head .team-info-actions{margin-left:auto}.team-info-actions .team-mini-link{margin-left:0}.team-holiday-list,.team-holiday-list li{text-align:left}.team-holiday-list .team-holiday-name{flex:0 0 auto;font-variant-numeric:tabular-nums}.team-zoom-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;padding:.15rem 0 .35rem}.team-zoom-label{font-size:.72rem;color:#9ca3af}.team-zoom-tabs{display:inline-flex;padding:2px;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb}.team-zoom-tab{border:none;background:transparent;cursor:pointer;font-size:.74rem;color:#6b7280;padding:.2rem .55rem;border-radius:6px;line-height:1.2}.team-zoom-tab.is-active{background:#fff;color:#0f766e;font-weight:700;box-shadow:0 1px 2px #0f172a14}.team-zoom-hint{font-size:.7rem;color:#b0b7c3}.team-copy-tabs{display:flex;gap:.3rem;margin-bottom:.5rem}.team-copy-tab{flex:1 1 0;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-size:.8rem;color:#4b5563;padding:.42rem .5rem;border-radius:8px;line-height:1.25}.team-copy-tab.is-active{border-color:#f59e0b;background:#fffbeb;color:#b45309;font-weight:700}.team-copy-text{display:block;width:100%;min-height:260px;max-height:46vh;resize:vertical;border:1px solid #d1d5db;border-radius:8px;padding:.6rem .7rem;font-size:.8rem;line-height:1.55;color:#111827;background:#fcfcfd;font-family:ui-monospace,SFMono-Regular,PingFang SC,monospace;white-space:pre-wrap;box-sizing:border-box}.team-copy-hint{font-size:.7rem;color:#9ca3af;margin:.35rem 0 .5rem;line-height:1.5}.team-copy-done{font-size:.74rem;color:#15803d;margin:0 0 .4rem}.team-sop-note{font-size:.74rem;color:#6b7280;line-height:1.6;margin:0 0 .6rem;background:#f8fafc;border:1px solid #eef2f7;border-radius:8px;padding:.45rem .6rem}.team-sop-error{font-size:.76rem;color:#b91c1c;margin:0 0 .5rem}.team-sop-group{margin-bottom:.55rem}.team-sop-group-title{margin:0 0 .3rem;font-size:.8rem;color:#111827;font-weight:700;display:flex;align-items:baseline;gap:.4rem}.team-sop-group-hint{font-size:.68rem;color:#9ca3af;font-weight:400}.team-sop-item{display:flex;gap:.5rem;align-items:flex-start;padding:.42rem .5rem;border:1px solid #eef2f7;border-radius:8px;margin-bottom:.3rem;background:#fff;cursor:pointer}.team-sop-item:hover{border-color:#ddd6fe;background:#fcfbff}.team-sop-item.is-off{opacity:.55;cursor:default}.team-sop-item input{margin-top:.15rem;flex:0 0 auto}.team-sop-body{display:flex;flex-direction:column;gap:.12rem;min-width:0}.team-sop-head{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;font-size:.8rem}.team-sop-head b{font-size:.84rem;color:#111827}.team-sop-cadence{font-size:.68rem;color:#0f766e;background:#ecfdf5;border:1px solid #99f6e4;border-radius:4px;padding:0 .28rem}.team-sop-scope{font-size:.66rem;color:#6b7280}.team-sop-tag{font-size:.66rem;color:#7c3aed;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:4px;padding:0 .28rem}.team-sop-tag.is-new{color:#b45309;background:#fffbeb;border-color:#fde68a}.team-sop-tag.is-done{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.team-sop-tag.is-blocked{color:#9ca3af;background:#f9fafb;border-color:#e5e7eb}.team-sop-desc{font-size:.73rem;color:#4b5563;line-height:1.5}.team-sop-basis{font-size:.66rem;color:#b0b7c3}
