:root{font-family:DM Sans,Noto Sans SC,system-ui,sans-serif;color:#17324d;background:#f2f7fc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-width:320px}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit;text-decoration:none}p{margin:0}h1,h2,h3{margin:0;line-height:1.3}h1{font-size:clamp(1.55rem,5vw,2.25rem);letter-spacing:-.03em}h2{font-size:1.05rem}h3{font-size:1rem}small,.muted{color:#6b8196}.muted{line-height:1.6}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:#1476ce;font-size:.72rem;font-weight:700;margin-bottom:.35rem}.app-shell{min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid #dbe8f4;position:sticky;top:0;z-index:20}.topbar-inner{height:100%;max-width:1180px;margin:auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;letter-spacing:-.04em;color:#0e4f91;font-size:1.2rem}.brand small{font-size:.72rem;letter-spacing:.02em}.brand-mark{width:34px;height:34px;border-radius:10px;background:#0d68c4;color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px #0d68c430}.topbar-user{display:flex;gap:12px;align-items:center;font-size:.88rem}.user-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button{border:0;background:transparent;color:#0e68b9;font-weight:700;padding:10px}.main-content{max-width:1180px;margin:auto;padding:28px 20px calc(104px + env(safe-area-inset-bottom))}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-header .muted{margin-top:7px}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid #d9e7f3;display:flex;justify-content:center;padding:6px max(10px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px #1648720b}.nav-item{width:min(25%,180px);min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:10px;color:#718aa2;font-size:.73rem;font-weight:650}.nav-item.active{color:#0d68c4;background:#e9f4ff}.nav-icon{font-size:1.35rem;line-height:1}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.state-card{background:#fff;border:1px solid #dce9f5;border-radius:18px;padding:20px;box-shadow:0 9px 28px #1f55700a;min-width:0}.card.accent{background:linear-gradient(130deg,#0e69c5,#3d9bea);color:#fff;border:none}.card.accent .muted{color:#e1f1ff}.card h2{margin-bottom:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.section-heading h2{margin:0}.metric{font-size:clamp(1.5rem,6vw,2.25rem);font-weight:800;letter-spacing:-.045em;overflow-wrap:anywhere;margin:8px 0 3px}.metric-label{font-size:.82rem;color:#6c879e}.card.accent .metric-label{color:#d9ecff}.card-list{display:grid;gap:12px}.record-card{display:block;background:#fff;border:1px solid #dce9f5;border-radius:15px;padding:16px;min-width:0}.record-card:hover{border-color:#9fc6ea}.record-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.record-title{font-weight:700;overflow-wrap:anywhere}.record-meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:#60788d;font-size:.83rem;margin-top:8px;line-height:1.5}.record-card p{overflow-wrap:anywhere}.badge{font-size:.7rem;font-weight:750;padding:4px 8px;border-radius:99px;background:#e8f3ff;color:#0e67b9;white-space:nowrap}.badge.warn{background:#fff2df;color:#995900}.badge.gray{background:#ecf1f6;color:#64788b}.button,.button:visited{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #0d68c4;border-radius:11px;background:#0d68c4;color:#fff;font-weight:700;font-size:.88rem;padding:9px 15px;text-align:center;line-height:1.3}.button.secondary{background:#fff;color:#0d68c4;border-color:#b8d6ed}.button.danger{background:#bc394b;border-color:#bc394b}.button.ghost{background:transparent;border-color:transparent;color:#0d68c4}.button-row{display:flex;flex-wrap:wrap;gap:8px}.stack{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1}.field label,.field>span{font-size:.8rem;font-weight:700;color:#3a5873}.field input,.field select,.field textarea{width:100%;min-height:44px;background:#fff;border:1px solid #cbdce9;border-radius:10px;padding:10px 12px;color:#17324d;outline:none;min-width:0}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#0d68c4;box-shadow:0 0 0 3px #0d68c422}.inline-error,.notice.error{color:#a72c40}.inline-error{font-size:.82rem;margin-top:10px}.notice{padding:12px 15px;border-radius:10px;margin-bottom:16px;background:#e7f7ec;color:#17623a}.notice.error{background:#fff0f1}.notice.warn{background:#fff4e3;color:#8c580c}.state-card{min-height:110px;display:flex;align-items:center;justify-content:center;gap:12px;color:#69829b;text-align:center}.state-card.error{color:#ad3044;flex-direction:column}.spinner{width:18px;height:18px;border:2px solid #bed6ed;border-top-color:#0d68c4;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:15px;font-size:.8rem;color:#617a91}.pager .button{padding:7px 12px;min-height:38px}.link-list{display:grid;gap:10px}.link-tile{display:flex;align-items:center;justify-content:space-between;padding:17px 18px;border:1px solid #dce9f5;border-radius:14px;background:#fff;font-weight:700}.link-tile:hover{border-color:#0d68c4;color:#0d68c4}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-item{min-width:0}.detail-item dt{font-size:.76rem;color:#71889c;margin-bottom:4px}.detail-item dd{margin:0;font-size:.9rem;overflow-wrap:anywhere}.divider{border:0;border-top:1px solid #e6eef5;margin:17px 0}.subtabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px}.subtabs button{white-space:nowrap}.login-shell{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 12% 7%,#d6ebff,transparent 28%),linear-gradient(145deg,#eaf5ff,#f8fbff)}.login-card{width:min(100%,420px);padding:28px;border-radius:24px;background:#fff;box-shadow:0 20px 55px #1f5a8a1e}.login-card h1{margin:20px 0 6px}.login-card form{margin-top:24px}.login-card .button{width:100%}.login-mark{width:50px;height:50px;border-radius:15px;background:#0d68c4;color:#fff;display:grid;place-items:center;font-size:1.5rem;font-weight:800}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid #bdd7ec;border-radius:100px;padding:7px 10px;background:#fff;font-size:.77rem}.chip.active{background:#0d68c4;color:#fff;border-color:#0d68c4}.kbd-safe{padding-bottom:calc(18px + env(safe-area-inset-bottom))}@media(max-width:720px){.grid.four,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.main-content{padding:22px 14px calc(100px + env(safe-area-inset-bottom))}.card{padding:17px}.page-header{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:370px){.grid.two,.grid.three,.grid.four{grid-template-columns:1fr 1fr}.topbar-inner{padding:0 13px}.main-content{padding-left:12px;padding-right:12px}.nav-item{font-size:.65rem}.pager{gap:6px;font-size:.72rem}.pager .button{padding:6px 8px}}.confirm-dialog{width:min(92vw,430px);border:1px solid #c9deef;border-radius:18px;padding:24px;color:#17324d;box-shadow:0 22px 70px #173d5d3d}.confirm-dialog::backdrop{background:#0c274b77}.confirm-dialog p{line-height:1.6;margin:10px 0 22px;overflow-wrap:anywhere}.confirm-dialog .button-row{justify-content:flex-end}.page-back{margin-bottom:14px;min-width:88px;min-height:44px}.template-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}@media(max-width:720px){.template-editor{grid-template-columns:1fr!important}}@media(max-width:720px){.button-row>.card{flex:1 1 100%}}
