:root{--bg: #eef1f5;--surface: #ffffff;--ink: #17202a;--muted: #5b6773;--line: #dde3ea;--line-strong: #c3ccd6;--brand: #16608f;--brand-dark: #0f4a70;--brand-soft: #e7f0f7;--brand-ring: rgba(22, 96, 143, .35);--success: #1d7a4f;--success-bg: #e6f4ea;--success-line: #9cc9a8;--danger: #b42318;--danger-bg: #fdecea;--danger-line: #e0a09a;--danger-dark: #8f1d14;--shadow-sm: 0 1px 2px rgba(23, 32, 42, .08);--shadow-md: 0 8px 24px rgba(23, 32, 42, .16);--radius: 8px;--radius-lg: 12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.55;color:var(--ink);background:var(--bg);overflow-x:clip}a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-dark)}button{cursor:pointer;font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand-ring);outline-offset:2px}input,select,textarea{font:inherit;color:var(--ink)}img,svg,video{max-width:100%}.topbar{display:flex;align-items:center;gap:24px;background:linear-gradient(180deg,#175f8f,#12557f);color:#fff;padding:10px 20px;box-shadow:0 1px 4px #17202a40;position:sticky;top:0;z-index:40;flex-wrap:wrap}.topbar a{color:#fff;text-decoration:none}.topbar a:hover{text-decoration:underline}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.01em;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#fff;color:var(--brand);font-size:17px;font-weight:800;flex:none}.nav-toggle{display:none;margin-left:auto;background:#ffffff29;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:var(--radius);min-width:44px;min-height:44px;font-size:20px;line-height:1}.topnav{display:flex;gap:4px;align-items:center}.topnav a{padding:8px 12px;border-radius:var(--radius);font-size:14px;font-weight:600;white-space:nowrap}.topnav a:hover{background:#ffffff29;text-decoration:none}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.topbar-right .btn{border-color:#ffffff80;background:#ffffff1f;color:#fff}.topbar-right .btn:hover{background:#ffffff3d}.user-name{font-size:14px;font-weight:600;white-space:nowrap}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.main{padding:24px 20px 16px;width:100%;max-width:1100px;margin:0 auto;flex:1;min-width:0}.app-footer{text-align:center;color:var(--muted);font-size:13px;padding:8px 16px 24px}.page{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);min-width:0}.page h1,.page h2,.page h3{letter-spacing:-.01em;line-height:1.3}.page h1{margin:0 0 8px;font-size:26px}.page h2{margin:28px 0 12px;font-size:19px}.page h3{margin:20px 0 8px;font-size:16px}.page ul{padding-left:20px}.page li{margin:6px 0}.meta{color:var(--muted);font-size:13px}.empty-state{color:var(--muted);background:#f8fafc;border:1px dashed var(--line-strong);border-radius:var(--radius);padding:16px;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius);padding:9px 16px;min-height:40px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,border-color .15s ease}.btn:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark)}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-dark);border-color:var(--danger-dark);color:#fff}.btn-primary:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.btn-small{padding:6px 12px;font-size:13px;min-height:34px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0}.table-wrap table.data{margin:0;min-width:560px}table.data{width:100%;border-collapse:collapse;margin:12px 0}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;padding:10px 12px;font-size:14px;vertical-align:top}table.data th{background:#f1f5f9;font-size:13px;text-transform:none;letter-spacing:.01em;color:#334155;white-space:nowrap}table.data tbody tr:nth-child(2n){background:#f8fafc}table.data tbody tr:hover{background:var(--brand-soft)}table.data td a{font-weight:600}form label{display:block;margin:12px 0;font-size:14px;font-weight:600}form label input,form label select,form label textarea{display:block;margin-top:6px;padding:10px 12px;font-size:15px;font-weight:400;width:100%;max-width:460px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);min-height:44px}form label textarea{min-height:96px}form label input:focus,form label select:focus,form label textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}form label input:disabled,form label select:disabled,form label textarea:disabled{background:#f1f5f9;color:var(--muted);cursor:not-allowed}.form-row{display:flex;gap:16px;flex-wrap:wrap}.form-row label{flex:1 1 200px;min-width:0}.form-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.banner{border-radius:var(--radius);padding:12px 14px;margin:12px 0;font-size:14px;border:1px solid transparent}.banner-error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-dark)}.banner-ok{background:var(--success-bg);border-color:var(--success-line);color:#1d5c2e}.toolbar{display:flex;gap:10px;align-items:center;margin:16px 0;flex-wrap:wrap}.search-box{display:flex;gap:8px;flex:1 1 280px;min-width:0}.search-box input{padding:10px 12px;font-size:15px;border:1px solid var(--line-strong);border-radius:var(--radius);min-width:0;flex:1}.login-page{width:min(440px,calc(100vw - 32px));margin:72px auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:var(--shadow-md)}.login-page h1{margin:0 0 4px;font-size:28px;letter-spacing:-.01em}.login-subtitle{color:var(--muted);font-size:14px;margin:0 0 8px}.login-form .btn{margin-top:8px;width:100%}.login-form label input{max-width:none}.timer-widget{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.timer-running{font-size:13px;font-weight:600;background:#ffffff2e;padding:6px 10px;border-radius:999px;max-width:100%;overflow-wrap:anywhere}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--surface);color:var(--ink);border-radius:14px;padding:24px;width:420px;max-width:100%;max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow-md)}.modal h2{margin:0 0 8px}.modal label{display:block;margin:12px 0;font-size:14px;font-weight:600}.modal label input{display:block;margin-top:6px;padding:10px 12px;font-size:15px;width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);min-height:44px}.modal-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:24px 0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tabs button{border:none;background:none;padding:10px 14px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;min-height:44px}.tabs button.active{border-bottom-color:var(--brand);color:var(--brand)}.tabs button:hover{color:var(--brand)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 32px;font-size:14px}.detail-grid dt{color:var(--muted);font-weight:600}.detail-grid dd{margin:0 0 12px;overflow-wrap:anywhere}@media (max-width: 768px){.topbar{gap:12px;padding:10px 14px}.nav-toggle{display:inline-flex}.topnav{display:none;flex-direction:column;align-items:stretch;width:100%;order:3;gap:2px}.topnav.open{display:flex}.topnav a{padding:12px 10px;font-size:15px}.topbar-right{order:2;margin-left:0;width:100%}.topbar-right .btn{min-height:44px}.main{padding:16px 12px 12px}.page{padding:16px;border-radius:10px}.page h1{font-size:22px}.page h2{font-size:18px}.detail-grid{grid-template-columns:1fr;gap:4px 0}.detail-grid dd{margin-bottom:14px}.form-row{flex-direction:column;gap:0}.form-row label{flex:1 1 auto}form label input,form label select,form label textarea{max-width:none}.brand,form label input,form label select,.form-row label input,.form-row label select,.modal label input{min-height:44px}.data td a,.page>a,.page li a{display:inline-flex;align-items:center;min-height:44px}.search-box{flex-basis:100%}.search-box input{min-width:0}.btn,.btn-small{min-height:44px}.login-page{margin:32px auto;padding:24px}.tabs{margin:20px -16px 16px;padding:0 16px}.timer-widget{width:100%}}@media (max-width: 480px){.topbar{padding:8px 12px;gap:8px}.brand{font-size:17px}.brand-mark{width:28px;height:28px;font-size:16px}.main{padding:12px 8px 8px}.page{padding:14px}.page h1{font-size:20px}.page h2{font-size:17px}.toolbar{flex-direction:column;align-items:stretch}.toolbar .btn,.toolbar a.btn{width:100%}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{width:100%}.modal{padding:16px}.modal-actions{flex-direction:column;align-items:stretch}.modal-actions .btn{width:100%}.login-page{margin:24px auto;padding:20px}.timer-running{font-size:12px}table.data th,table.data td{padding:9px 10px;font-size:13px}}
