:root{--navy: #0a2342;--navy-light: #123b6e;--gold: #c8a84b;--gold-light: #e2c97e;--white: #ffffff;--off-white: #f5f7fa;--light-gray: #e9ecef;--mid-gray: #6c757d;--dark-gray: #343a40;--success: #198754;--danger: #dc3545;--warning: #ffc107;--radius: 8px;--radius-lg: 12px;--shadow: 0 2px 12px rgba(0,0,0,.12);--shadow-lg: 0 8px 32px rgba(0,0,0,.18);--transition: all .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;font-size:15px;line-height:1.6;color:var(--dark-gray);background:var(--off-white);min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.header{background:var(--navy);color:var(--white);padding:0 2rem;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000004d}.header-brand{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:700;letter-spacing:.02em}.header-brand span{color:var(--gold)}.header-nav{display:flex;align-items:center;gap:1rem}.header-user{font-size:.85rem;color:var(--gold-light)}.btn-logout{background:transparent;border:1px solid rgba(255,255,255,.3);color:var(--white);padding:.35rem .9rem;border-radius:var(--radius);font-size:.85rem;transition:var(--transition)}.btn-logout:hover{background:#ffffff1a}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.25rem;border-radius:var(--radius);border:none;font-size:.9rem;font-weight:600;transition:var(--transition);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--navy);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--navy-light)}.btn-gold{background:var(--gold);color:var(--navy)}.btn-gold:hover:not(:disabled){background:var(--gold-light)}.btn-outline{background:transparent;border:1.5px solid var(--navy);color:var(--navy)}.btn-outline:hover:not(:disabled){background:var(--navy);color:var(--white)}.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover:not(:disabled){background:#b02a37}.btn-sm{padding:.35rem .8rem;font-size:.82rem}.btn-lg{padding:.75rem 1.75rem;font-size:1rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-label{font-size:.82rem;font-weight:600;color:var(--mid-gray);text-transform:uppercase;letter-spacing:.04em}.form-control{padding:.55rem .8rem;border:1.5px solid var(--light-gray);border-radius:var(--radius);font-size:.95rem;transition:var(--transition);background:var(--white);color:var(--dark-gray);width:100%}.form-control:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px #0a23421f}textarea.form-control{resize:vertical;min-height:90px}.form-row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.check-group{display:flex;flex-direction:column;gap:.5rem}.check-row{display:flex;flex-wrap:wrap;gap:.75rem}.check-item{display:flex;align-items:center;gap:.45rem;cursor:pointer;font-size:.92rem}.check-item input[type=checkbox],.check-item input[type=radio]{width:16px;height:16px;accent-color:var(--navy);cursor:pointer}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.card-header{padding:1rem 1.5rem;background:var(--navy);color:var(--white);display:flex;align-items:center;justify-content:space-between}.card-header h2{font-size:1rem;font-weight:700;letter-spacing:.03em;display:flex;align-items:center;gap:.5rem}.card-header h2 .icon{color:var(--gold);font-size:1.1em}.card-body{padding:1.5rem}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge-draft{background:#fff3cd;color:#856404}.badge-submitted{background:#d1e7dd;color:#0a3622}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%);padding:2rem}.auth-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;overflow:hidden}.auth-card-header{background:var(--navy);color:var(--white);padding:2rem;text-align:center}.auth-card-header h1{font-size:1.4rem;font-weight:800}.auth-card-header p{color:var(--gold-light);font-size:.85rem;margin-top:.25rem}.auth-card-body{padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.auth-footer{text-align:center;font-size:.88rem;color:var(--mid-gray);padding:0 2rem 1.5rem}.auth-footer a{color:var(--navy);font-weight:600}.auth-footer a:hover{text-decoration:underline}.page-container{max-width:1200px;margin:0 auto;padding:2rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem;flex-wrap:wrap;gap:1rem}.page-title{font-size:1.6rem;font-weight:800;color:var(--navy)}.page-subtitle{color:var(--mid-gray);font-size:.9rem;margin-top:.1rem}.q-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.q-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1.5px solid var(--light-gray);padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;transition:var(--transition)}.q-card:hover{box-shadow:var(--shadow-lg);border-color:var(--navy);transform:translateY(-1px)}.q-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.q-card-title{font-size:1.05rem;font-weight:700;color:var(--navy)}.q-card-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.82rem;color:var(--mid-gray)}.q-card-meta span:before{content:""}.q-card-venue{background:var(--off-white);border:1px solid var(--light-gray);border-radius:var(--radius);padding:.2rem .6rem;font-size:.8rem;color:var(--dark-gray);font-weight:600}.q-card-actions{display:flex;gap:.5rem;margin-top:.25rem}.empty-state{text-align:center;padding:4rem 2rem;color:var(--mid-gray)}.empty-state h3{font-size:1.2rem;color:var(--navy);margin-bottom:.5rem}.q-page{display:flex;gap:0;min-height:calc(100vh - 60px)}.q-sidebar{width:260px;flex-shrink:0;background:var(--navy);position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;display:flex;flex-direction:column}.q-sidebar::-webkit-scrollbar{width:4px}.q-sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.q-sidebar-title{padding:1.1rem 1.1rem .8rem;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:.4rem;display:flex;align-items:center;gap:.5rem;flex-shrink:0}.q-sidebar-title:before{content:"";display:inline-block;width:3px;height:12px;background:var(--gold);border-radius:2px}.sidebar-group{padding:.9rem .9rem .2rem;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em;color:#ffffff47}.q-sidebar-link{display:flex;align-items:center;gap:.65rem;padding:.5rem .9rem;font-size:.83rem;color:#ffffff94;background:none;border:none;border-left:3px solid transparent;width:100%;text-align:left;transition:var(--transition);cursor:pointer;line-height:1.3}.q-sidebar-link:hover{background:#ffffff0f;color:#ffffffe6}.q-sidebar-link:hover .sidebar-icon{background:#ffffff21}.q-sidebar-link.active{border-left-color:var(--gold);background:#c8a84b1a;color:var(--gold-light)}.q-sidebar-link.active .sidebar-icon{background:#c8a84b2e;color:var(--gold)}.q-sidebar-link.active .sidebar-num{color:#c8a84b8c}.sidebar-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff12;border-radius:6px;font-size:.95em;flex-shrink:0;transition:var(--transition)}.sidebar-label{flex:1;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-num{font-size:.68rem;font-weight:700;color:#ffffff2e;font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-shrink:0;transition:var(--transition)}.q-sidebar-link.locked{opacity:.32}.q-sidebar-link.locked:hover{background:#ffffff0a;color:#ffffff80;cursor:pointer}.q-sidebar-link.locked .sidebar-icon{background:#ffffff0a}.q-content{flex:1;padding:2rem;max-width:calc(100% - 260px)}.q-content-inner{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:1.75rem}.req-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.req-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.1rem .75rem .9rem;background:var(--off-white);border:2px solid var(--light-gray);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);font-family:inherit;position:relative}.req-card:hover{border-color:var(--navy);background:#0a23420a;transform:translateY(-1px);box-shadow:var(--shadow)}.req-card-active{border-color:var(--gold);background:#c8a84b12}.req-card-active:hover{border-color:var(--gold);background:#c8a84b1f}.req-icon{font-size:1.75rem;line-height:1}.req-label{font-size:.78rem;font-weight:600;color:var(--dark-gray);text-align:center;line-height:1.3}.req-card-active .req-label{color:var(--navy)}.req-check{width:22px;height:22px;border-radius:50%;background:var(--light-gray);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;color:var(--mid-gray);transition:var(--transition);margin-top:.1rem}.req-card-active .req-check{background:var(--gold);color:var(--navy)}.section-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.section-header{background:var(--navy);color:var(--white);padding:.85rem 1.5rem;display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.95rem}.section-header .section-icon{color:var(--gold);font-size:1.1em}.section-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.crew-grid{display:grid;grid-template-columns:1fr repeat(3,100px);border:1.5px solid var(--light-gray);border-radius:var(--radius);overflow:hidden}.crew-header-cell{background:var(--navy);color:var(--white);padding:.6rem .75rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;text-align:center}.crew-label-col{background:var(--off-white);border-top:1px solid var(--light-gray);padding:.5rem .85rem;display:flex;align-items:center}.crew-header-cell.crew-label-col{background:var(--navy);border:none}.crew-disc-label{font-weight:600;font-size:.9rem;color:var(--dark-gray)}.crew-input-cell{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--light-gray);border-left:1px solid var(--light-gray);padding:.4rem .5rem}.crew-input{width:100%;text-align:center;border:1.5px solid var(--light-gray);border-radius:var(--radius);padding:.35rem .25rem;font-size:.92rem;background:var(--white);font-family:inherit;color:var(--dark-gray);transition:var(--transition)}.crew-input:hover{border-color:var(--mid-gray)}.crew-input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px #0a23421a}.crew-input::placeholder{color:var(--light-gray)}.crew-total-label{background:var(--off-white);border-top:2px solid var(--navy);padding:.55rem .85rem;font-weight:800;font-size:.85rem;color:var(--navy);display:flex;align-items:center}.crew-total-cell{background:var(--off-white);border-top:2px solid var(--navy);border-left:1px solid var(--light-gray);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem;color:var(--navy);padding:.5rem}.attachment-zone{border-top:1.5px dashed var(--light-gray);padding-top:1.1rem;display:flex;flex-direction:column;gap:.6rem}.attachment-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mid-gray)}.attachment-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.attachment-item{display:flex;align-items:center;gap:.6rem;background:var(--off-white);border:1px solid var(--light-gray);border-radius:var(--radius);padding:.45rem .75rem;font-size:.88rem}.att-icon{font-size:1rem;flex-shrink:0}.att-name{flex:1;color:var(--navy);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-name:hover{text-decoration:underline}.att-size{font-size:.78rem;color:var(--mid-gray);flex-shrink:0}.att-remove{background:none;border:none;color:var(--mid-gray);font-size:.9rem;cursor:pointer;padding:.1rem .3rem;border-radius:4px;flex-shrink:0;line-height:1;transition:var(--transition)}.att-remove:hover{background:#f8d7da;color:var(--danger)}.att-error{font-size:.83rem;color:var(--danger);margin:0}.att-hint{font-size:.8rem;color:var(--mid-gray);margin-left:.5rem}.view-attachments{grid-column:1 / -1;display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem;border-top:1.5px dashed var(--light-gray);padding-top:.75rem}.view-att-images{display:flex;flex-direction:column;gap:.75rem}.view-att-img-block{display:flex;flex-direction:column;gap:.25rem}.view-att-img-block img{max-width:100%;border-radius:var(--radius);border:1px solid var(--light-gray)}.view-att-files{display:flex;flex-direction:column;gap:.3rem}.view-att-file-link{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--navy);font-weight:500}.view-att-file-link:hover{text-decoration:underline}@media print{.att-remove,.attachment-zone button{display:none!important}.view-att-img-block img{max-width:100%;page-break-inside:avoid}.view-att-file-link{color:var(--navy)}.view-att-file-link:after{content:" — " attr(href);font-size:.75em;color:#555;font-weight:400}}.sub-section{border:1.5px solid var(--light-gray);border-radius:var(--radius);overflow:hidden}.sub-section+.sub-section{margin-top:.75rem}.sub-section-header{background:var(--off-white);border-bottom:1.5px solid var(--light-gray);padding:.65rem 1.1rem;font-weight:700;font-size:.85rem;color:var(--navy);display:flex;align-items:center;gap:.5rem}.sub-section-body>.section-body{padding:1rem 1.1rem}.action-bar{position:sticky;bottom:0;background:var(--white);border-top:1.5px solid var(--light-gray);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 -4px 16px #00000014;z-index:50}.action-bar-left{display:flex;gap:.75rem}.action-bar-right{display:flex;gap:.75rem;align-items:center}.save-status{font-size:.82rem;color:var(--mid-gray)}.view-page{max-width:900px;margin:0 auto;padding:2rem}.view-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.view-section{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:1.25rem;overflow:hidden}.view-section-header{background:var(--navy);color:var(--white);padding:.75rem 1.25rem;font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.view-section-body{padding:1.25rem}.view-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem 1.5rem}.view-field{display:flex;flex-direction:column;gap:.15rem}.view-field-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mid-gray)}.view-field-value{font-size:.95rem;color:var(--dark-gray)}.view-field-value.empty{color:var(--light-gray);font-style:italic}.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.9rem;font-weight:500}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c2c7}.alert-success{background:#d1e7dd;color:#0a3622;border:1px solid #badbcc}.spinner{width:36px;height:36px;border:3px solid var(--light-gray);border-top-color:var(--navy);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;justify-content:center;padding:4rem}.divider{border:none;border-top:1.5px solid var(--light-gray);margin:.5rem 0}@media print{.header,.action-bar,.btn,.q-sidebar,.no-print{display:none!important}body{background:#fff;font-size:12px}.view-page{padding:0;max-width:100%}.view-section{box-shadow:none;border:1px solid #ccc;margin-bottom:.75rem}.view-section-header{background:#0a2342!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width: 768px){.q-page{flex-direction:column}.q-sidebar{width:100%;height:auto;position:static;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:0}.q-sidebar-title,.sidebar-group{display:none}.q-sidebar-link{flex-direction:column;align-items:center;gap:.3rem;padding:.6rem .75rem;border-left:none;border-bottom:3px solid transparent;white-space:nowrap;min-width:70px}.q-sidebar-link.active{border-left-color:transparent;border-bottom-color:var(--gold);background:#c8a84b1a}.sidebar-label{font-size:.7rem}.sidebar-num{display:none}.q-content{max-width:100%;padding:1rem}.form-row-2,.form-row-3{grid-template-columns:1fr}.action-bar{padding:.75rem 1rem;flex-direction:column;align-items:stretch}.page-container{padding:1rem}}:root{--brand-navy: #0a2342;--brand-navy-600: #123b6e;--brand-gold: #c8a84b;--bg: #f6f7f9;--surface: #ffffff;--border: #e3e7ec;--text: #1c2430;--text-muted: #5f6b7a;--success: #1e8e5a;--warning: #c98a0b;--danger: #c8372d;--info: #2f6fde;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .06);--shadow-pop: 0 12px 32px rgba(16, 24, 40, .16);--font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--navy: var(--brand-navy);--navy-light: var(--brand-navy-600);--gold: var(--brand-gold);--off-white: var(--bg)}@media (prefers-color-scheme: dark){:root{--brand-navy-600: #3b6aa8;--brand-gold: #d9bc66;--bg: #0e1420;--surface: #161e2d;--border: #263247;--text: #e8ecf2;--text-muted: #9aa6b5;--success: #3dbb80;--warning: #e5a93a;--danger: #ef6a5f;--info: #6c9cf0}}body{font-family:var(--font);font-size:14px;background:var(--bg);color:var(--text)}h1{font-size:24px;font-weight:600}h2{font-size:18px;font-weight:600}h3{font-size:16px;font-weight:600}.muted{color:var(--text-muted)}.pad{padding:12px 16px}.row{display:flex;align-items:center}.gap{gap:8px}.wrap{flex-wrap:wrap}.spacer{flex:1}.num{font-variant-numeric:tabular-nums}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.stack>*+*{margin-top:12px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--brand-navy);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:20px 20px 12px;font-weight:700;font-size:16px}.brand span{color:var(--brand-gold)}.sidebar nav{flex:1;overflow-y:auto;padding:4px 10px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);color:#ffffffd1;font-size:14px;border-left:3px solid transparent}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item.active{background:#ffffff1a;color:#fff;border-left-color:var(--brand-gold)}.nav-group{margin:16px 10px 6px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffffff80}.sidebar-foot{display:flex;align-items:center;gap:8px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-foot .who{flex:1;display:flex;flex-direction:column;font-size:13px;min-width:0}.sidebar-foot .who span{color:#fff9;font-size:12px}.sidebar .icon-btn{color:#fff}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:56px;display:flex;align-items:center;gap:12px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar-spacer{flex:1}.content{padding:24px;max-width:1280px;width:100%}.icon-btn{background:none;border:0;padding:6px;border-radius:var(--r-sm);color:var(--text);position:relative;display:inline-flex}.icon-btn:hover{background:#7f7f7f1f}.bell-wrap{position:relative}.bell-dot{position:absolute;top:0;right:0;background:var(--danger);color:#fff;font-size:10px;border-radius:8px;padding:0 5px}.bell-panel{position:absolute;right:0;top:40px;width:340px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}.bell-head{padding:12px 16px;font-weight:600;border-bottom:1px solid var(--border)}.bell-item{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 16px;border-bottom:1px solid var(--border);color:var(--text);font-size:13px}.bell-item.unread{font-weight:600}.bell-item.unread:before{content:"● ";color:var(--info)}.bottom-bar{display:none}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card)}.card-pad{padding:20px}.card-title{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);font-weight:600}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:16px}.stat-label{font-size:13px;color:var(--text-muted)}.stat-value{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:4px}.stat-sub{font-size:12px;color:var(--text-muted);margin-top:4px}.stat-warning{border-color:var(--warning)}.stat-danger{border-color:var(--danger)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.seg button{border:0;background:var(--surface);padding:6px 12px;color:var(--text);font-size:13px}.seg button.on{background:var(--brand-navy);color:#fff}.table{width:100%;border-collapse:collapse;background:var(--surface)}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr.click:hover td{background:#7f7f7f0f;cursor:pointer}.pill{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:11px;font-size:12px;font-weight:500;white-space:nowrap}.pill-neutral{background:#5f6b7a1f;color:var(--text-muted)}.pill-success{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.pill-warning{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.pill-danger{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.pill-info{background:color-mix(in srgb,var(--info) 12%,transparent);color:var(--info)}.banner{border-radius:var(--r-md);padding:12px 16px;margin-bottom:16px;border:1.5px solid;display:flex;flex-direction:column;gap:2px}.banner-warning{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent)}.banner-danger{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.banner-info{border-color:var(--info);background:color-mix(in srgb,var(--info) 8%,transparent)}.banner-success{border-color:var(--success);background:color-mix(in srgb,var(--success) 8%,transparent)}.btn{border-radius:var(--r-sm)}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn-ghost{background:none;border:0;color:var(--brand-navy-600)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field-label{font-size:13px;font-weight:500;color:var(--text-muted)}.field-hint{font-size:12px;color:var(--text-muted)}.input,.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;width:100%}.field textarea{min-height:120px}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a142359;z-index:50;display:flex;justify-content:flex-end}.overlay.center{justify-content:center;align-items:center}.drawer{width:480px;max-width:100%;height:100%;background:var(--surface);display:flex;flex-direction:column;border-radius:var(--r-lg) 0 0 var(--r-lg);box-shadow:var(--shadow-pop)}.modal{width:440px;max-width:94vw;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-pop)}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.drawer-body{padding:20px;overflow-y:auto;flex:1}.drawer-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.empty{text-align:center;padding:48px 16px}.empty h3{margin-bottom:6px}.day{margin-bottom:12px}.day-head{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border)}.entry{display:grid;grid-template-columns:2fr 1.2fr 90px 90px 70px 1.4fr auto;gap:8px;padding:8px 16px;align-items:center;border-bottom:1px solid var(--border)}.entry:last-child{border-bottom:0}.progress{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:8px}.progress>div{height:100%;background:var(--info)}.progress.warn>div{background:var(--warning)}.month{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.month .dow{padding:8px;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border)}.month .cell{min-height:104px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;font-size:12px}.month .cell.dim{background:#7f7f7f0a;color:var(--text-muted)}.chip{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--info);background:color-mix(in srgb,var(--info) 10%,transparent);border-radius:4px;padding:2px 6px;margin-top:4px;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip.mine{border-left-color:var(--brand-gold)}.reader{max-width:72ch;line-height:1.7}.reader h1,.reader h2,.reader h3{margin:1.2em 0 .4em}.reader p,.reader ul,.reader ol{margin-bottom:.9em}.reader ul,.reader ol{padding-left:1.4em}.reader pre{white-space:pre-wrap}.login{min-height:100vh;display:grid;place-items:center;background:var(--brand-navy);padding:16px}.login .card{width:380px;max-width:100%;padding:28px}@media (max-width: 1024px){.shell{grid-template-columns:64px 1fr}.brand,.nav-item{font-size:0}.nav-item{justify-content:center}.nav-group,.sidebar-foot .who{display:none}}@media (max-width: 640px){.shell{grid-template-columns:1fr}.sidebar{display:none}.content{padding:16px 12px 88px}.topbar{padding:0 12px}.bottom-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:30}.bottom-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;font-size:11px;color:var(--text-muted)}.bottom-item.active{color:var(--brand-navy-600)}.entry{grid-template-columns:1fr 1fr}.drawer{width:100%;border-radius:0}}.ce{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.ce-stage{background:#e6e9ee;border-radius:var(--r-md);padding:12px;overflow:auto}.ce-wrap{position:relative;box-shadow:0 2px 12px #00000040;margin:0 auto;overflow:hidden}.ce-page{position:absolute;left:0;top:0;transform-origin:0 0;-webkit-user-select:none;user-select:none}.ce-el{position:absolute}.ce-edit{cursor:move;touch-action:none}.ce-edit:hover{outline:1px dashed #3b82f6}.ce-sel,.ce-sel:hover{outline:2px solid #3b82f6}.ce-handle{position:absolute;background:#3b82f6;border-radius:2px;cursor:nwse-resize;touch-action:none}.ce-empty{display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:#f1f3f6;color:#8a94a3;font-size:12px}.ce-panel{position:sticky;top:72px;max-height:calc(100vh - 90px);overflow-y:auto}@media (max-width: 960px){.ce{grid-template-columns:1fr}.ce-panel{position:static;max-height:none}}:root{--working-from: #d3e6ff;--working-to: #9cc3f7;--working-edge: #2f6fde;--working-text: #0a2342;--working-row: #e4efff}@media (prefers-color-scheme: dark){:root{--working-from: #27487c;--working-to: #3a64a3;--working-edge: #8db6f5;--working-text: #eaf2ff;--working-row: #1d3354}}.chip.mine{background:linear-gradient(135deg,var(--working-from),var(--working-to));border-left-color:var(--working-edge);color:var(--working-text);font-weight:600;box-shadow:0 1px 2px #1018281f}.chip.mine:hover{filter:brightness(.97)}.bell-item.mine{background:linear-gradient(90deg,var(--working-from),var(--working-row) 55%,transparent);box-shadow:inset 4px 0 0 var(--working-edge)}.working-key{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.working-key i{width:14px;height:14px;border-radius:3px;background:linear-gradient(135deg,var(--working-from),var(--working-to));border-left:3px solid var(--working-edge);display:inline-block}html{-webkit-text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent}button,a,select,input,textarea{touch-action:manipulation}.topbar{box-sizing:border-box;height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.page-head .row{flex-wrap:wrap}.card-title{flex-wrap:wrap;gap:8px}.more-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;background:#0a142359}.more-sheet{position:fixed;left:0;right:0;z-index:35;bottom:calc(60px + env(safe-area-inset-bottom,0px));max-height:72dvh;overflow-y:auto;background:var(--surface);border-radius:16px 16px 0 0;border-top:1px solid var(--border);box-shadow:var(--shadow-pop);padding:14px 14px 12px}.more-who{display:flex;flex-direction:column;margin-bottom:12px}.more-who span{color:var(--text-muted);font-size:13px}.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.more-item{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:15px;text-align:left}.more-item.active{border-color:var(--brand-navy-600);color:var(--brand-navy-600);font-weight:600}.more-signout{width:100%;color:var(--danger)}.bottom-item{background:none;border:0;font-family:inherit}@media (max-width: 640px){body{font-size:15px}h1{font-size:22px}.content{padding:14px calc(12px + env(safe-area-inset-right,0px)) calc(86px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px))}.hide-mobile{display:none!important}input,select,textarea,.input,.form-control,.field input,.field select,.field textarea{font-size:16px}.btn{min-height:44px}.btn-sm{min-height:38px}.seg button{padding:10px 14px}.icon-btn{padding:11px}.bottom-bar{min-height:calc(58px + env(safe-area-inset-bottom,0px))}.bottom-item{padding:9px 0 6px;font-size:11px}.page-head{margin-bottom:14px;gap:10px}.page-head>.row{width:100%}.page-head .row>.btn{flex:1 1 auto}.filters .input,.filters select,.filters .field{width:100%!important;flex:1 1 100%}.filters .seg{max-width:100%;overflow-x:auto}.filters .seg button{white-space:nowrap}.card{overflow-x:auto;-webkit-overflow-scrolling:touch}.card-title{padding:12px 14px}.card-pad{padding:14px}.table th,.table td{padding:9px 10px;font-size:13px}.grid-2{grid-template-columns:1fr}.tiles{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:12px}.stat-value{font-size:22px}.overlay.center{align-items:flex-end}.modal{width:100%;max-width:100%;max-height:92dvh;display:flex;flex-direction:column;border-radius:16px 16px 0 0}.modal .drawer-body{flex:1;overflow-y:auto}.drawer{height:100dvh}.drawer-body{padding:16px}.drawer-foot{flex-wrap:wrap;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}.drawer-foot .btn{flex:1 1 auto}.bell-panel{position:fixed;left:10px;right:10px;width:auto;top:calc(60px + env(safe-area-inset-top,0px))}.month .cell{min-height:60px;padding:3px}.working-key{width:100%}}.field input[type=checkbox],.field input[type=radio]{width:auto;flex:none}
