:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#182b3d;background:#f4f7f8}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.muted{color:#718293;margin:.4rem 0 0;line-height:1.5}.eyebrow{font-size:.72rem;letter-spacing:.14em;font-weight:800;color:#168a7b}.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;flex:none;background:#102e37;color:#eaf6f3;padding:28px 18px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:12px;font-weight:800;line-height:1.15;font-size:1.05rem;margin:4px 8px 55px}.sidebar-brand small{font-size:.74rem;color:#94b9b7;font-weight:500}.brand-mark{width:47px;height:47px;display:grid;place-items:center;border-radius:13px;background:#14aa92;color:white;font-size:1.7rem;font-weight:800;box-shadow:0 9px 18px #0d877445}.brand-mark span{color:#b7f49a}.brand-mark.small{width:38px;height:38px;font-size:1.36rem;flex:none}.sidebar-label{color:#6e9b9a;font-size:.67rem;font-weight:800;letter-spacing:.14em;padding:0 13px;margin-bottom:13px}.nav{display:flex;align-items:center;gap:13px;padding:12px 13px;border-radius:10px;color:#c5dcda;font-size:.89rem;font-weight:650}.nav span{font-size:1.15rem}.nav.active{background:#1b4b50;color:#fff}.sidebar-spacer{flex:1}.sidebar-help{border:1px solid #38656a;border-radius:11px;padding:14px;color:#a9c8c6;font-size:.76rem;line-height:1.5;margin-bottom:19px}.signout{border:0;background:none;color:#d8eeeb;padding:8px 12px;font-size:.84rem}.main-content{min-width:0;flex:1;padding:42px max(32px,3.4vw) 70px;max-width:1800px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.topbar h1{font-size:2rem;letter-spacing:-.04em;margin:8px 0 0}.button{border:0;border-radius:9px;padding:12px 18px;font-size:.88rem;font-weight:750;white-space:nowrap}.button.primary{background:#138f7c;color:#fff;box-shadow:0 8px 17px #138f7c24}.button.primary:hover{background:#0c7465}.button.secondary{background:#edf2f3;color:#3c5963}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:25px}.stat{background:white;border:1px solid #e0e9eb;border-radius:13px;padding:20px 22px;box-shadow:0 5px 18px #21425706}.stat span{font-size:.78rem;color:#748694;font-weight:700}.stat strong{display:block;font-size:2rem;letter-spacing:-.05em;margin:7px 0 1px}.stat small{font-size:.74rem;color:#92a0aa}.calendar-card{background:white;border:1px solid #e0e9eb;border-radius:14px;overflow:hidden;box-shadow:0 7px 25px #21425708}.calendar-title{display:flex;justify-content:space-between;align-items:center;padding:25px 27px}.calendar-title h2{font-size:1.16rem;letter-spacing:-.02em;margin:0}.calendar-title p{color:#8a9ba5;font-size:.8rem;margin:5px 0 0}.year-switch{display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:750}.year-switch a{display:grid;place-items:center;width:32px;height:32px;border:1px solid #dce7e9;border-radius:7px;font-size:1.3rem}.year-switch span{min-width:42px;text-align:center}.calendar-scroll{overflow:auto}.calendar-grid{min-width:1050px}.grid-head,.grid-row{display:grid;grid-template-columns:238px minmax(700px,1fr) 95px}.grid-head{height:47px;background:#f7fafb;border-block:1px solid #e6edef;color:#8a9aa5;font-size:.66rem;font-weight:800;letter-spacing:.075em;align-items:center}.identity-head{padding-left:26px}.months{height:100%;display:grid;grid-template-columns:repeat(12,1fr)}.months span{display:grid;place-items:center;border-left:1px solid #edf2f3}.action-head{text-align:center}.grid-row{border-bottom:1px solid #edf1f2;align-items:stretch}.identity{padding:13px 10px 12px 26px;display:flex;flex-direction:column;justify-content:center;min-width:0}.identity strong{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identity span{font-size:.72rem;color:#8ba0a7;margin-top:3px;letter-spacing:.03em}.timeline{position:relative;overflow:hidden}.month-lines{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,1fr)}.month-lines span{border-left:1px solid #edf1f1}.period{position:absolute;height:26px;border-radius:6px;z-index:1;min-width:7px;display:flex;align-items:center;padding:0 9px;overflow:hidden;white-space:nowrap;font-size:.68rem;font-weight:750}.period.valid{background:#ccefe3;color:#137665;border-left:3px solid #0d977b}.period.expired{background:#fff0d6;color:#a57620;border-left:3px solid #e5ad4e}.period span{overflow:hidden;text-overflow:ellipsis}.row-action{display:grid;place-items:center}.renew{border:0;background:#ecf7f4;color:#118471;border-radius:7px;padding:8px 10px;font-size:.72rem;font-weight:750}.renew:hover{background:#d9f1e9}.legend{display:flex;gap:22px;padding:19px 27px;color:#84949b;font-size:.72rem}.legend span{display:flex;align-items:center;gap:8px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.green{background:#28ae8b}.dot.amber{background:#e6ad4e}.empty{text-align:center;padding:65px 20px;color:#8598a0}.empty>span{font-size:2.7rem;color:#89b5b0}.empty h3{color:#29424b;margin:8px 0}.empty p{margin-bottom:23px}.notice{padding:12px 16px;border-radius:9px;font-size:.86rem;margin:0 0 18px}.notice.success{background:#e3f6eb;color:#177453}.notice.error{background:#fff1ef;color:#a64238}dialog{border:0;border-radius:16px;box-shadow:0 25px 90px #092f3d44;padding:0;max-width:460px;width:calc(100% - 30px)}dialog::backdrop{background:#082b37a8;backdrop-filter:blur(2px)}dialog form{padding:28px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{margin:7px 0 0;letter-spacing:-.03em}.icon-button{background:none;border:0;font-size:1.6rem;color:#8a9aa4}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:27px}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}label{display:block;font-size:.77rem;font-weight:750;color:#38515d;margin-top:19px}input{display:block;width:100%;border:1px solid #d5e1e4;border-radius:9px;padding:11px 12px;margin-top:7px;outline:0;color:#263e49;background:#fff}input:focus{border-color:#16a28d;box-shadow:0 0 0 3px #16a28d22}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 12% 20%,#d7f5e9,transparent 30%),radial-gradient(circle at 90% 80%,#d9e9f3,transparent 30%),#f2f7f7;padding:20px}.login-card{background:white;width:100%;max-width:420px;padding:40px;border:1px solid #dfe9ea;border-radius:19px;box-shadow:0 25px 65px #1e454315}.login-card .brand-mark{margin-bottom:30px}.login-card h1{margin:10px 0 3px;font-size:2rem;letter-spacing:-.05em}.login-card form{margin-top:24px}.button.wide{width:100%;display:flex;justify-content:space-between;margin-top:25px}.login-foot{text-align:center;color:#a2b0b4;font-size:.73rem;margin:26px 0 0}@media(max-width:800px){.sidebar{width:69px;padding:20px 10px}.sidebar-brand{margin:0 5px 40px}.sidebar-brand>span:last-child,.sidebar-label,.nav{font-size:0}.nav{justify-content:center}.nav span{font-size:1.2rem}.sidebar-help,.signout{display:none}.main-content{padding:26px 18px}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:1.5rem}.stat small{display:none}.topbar h1{font-size:1.5rem}.calendar-title{padding:19px}.grid-head,.grid-row{grid-template-columns:190px minmax(700px,1fr) 85px}.identity-head,.identity{padding-left:15px}}@media(max-width:550px){.stats{grid-template-columns:repeat(3,1fr)}.stat span{font-size:.65rem}.topbar{align-items:flex-start}.topbar .button{padding:10px;font-size:.75rem}.login-card{padding:28px}}
