*{box-sizing:border-box}
html{min-height:100%}
body{
 margin:0;
 min-height:100vh;
 background:var(--bg,#f6f7f9);
 color:var(--text,#15202b);
 font:var(--ag-font-size,14px) var(--ag-font-family,system-ui,-apple-system,"Segoe UI",sans-serif);
}
img{max-width:100%;border-radius:var(--ag-image-radius,10px)}
a{color:var(--accent,#1769aa)}
.public-topbar{
 position:fixed;
 top:0;left:0;right:0;
 z-index:100;
 height:64px;
 display:flex;
 align-items:center;
 gap:18px;
 padding:0 22px;
 background:var(--header,#17202a);
 color:#fff;
 box-shadow:0 2px 10px #00000012;
}
.public-brand{
 display:flex;
 align-items:center;
 gap:10px;
 color:#fff;
 text-decoration:none;
 min-width:0;
 flex:0 1 auto;
}
.public-brand img{
 display:block;
 width:auto;
 max-width:150px;
 max-height:38px;
 object-fit:contain;
}
.public-brand-mark{
 width:34px;height:34px;
 display:grid;place-items:center;
 border-radius:9px;
 background:color-mix(in srgb,var(--accent,#1769aa) 82%,#fff);
 color:#fff;
 flex:0 0 auto;
}
.public-brand-title{
 font-size:18px;
 font-weight:750;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.public-nav{
 margin-left:auto;
 display:flex;
 align-items:center;
 gap:var(--ag-menu-inner-gap,8px);
 min-width:0;
 overflow-x:auto;
 scrollbar-width:none;
}
.public-nav::-webkit-scrollbar{display:none}

.public-nav-link{
 display:inline-flex;
 align-items:center;
 gap:var(--ag-menu-inner-gap,8px);
 min-height:38px;
 padding:var(--ag-menu-gap,10px);
 color:#f5f8fa;
 text-decoration:none;
 border-radius:8px;
 white-space:nowrap;
 flex:0 0 auto;
}
input,select,textarea{
 padding:var(--ag-input-padding,10px);
 border-radius:var(--ag-input-radius,7px);
}
.public-nav-link:hover,
.public-nav-link:focus-visible{
 background:#ffffff18;
 outline:0;
}
.public-nav-account{
 background:color-mix(in srgb,var(--accent,#1769aa) 72%,#fff);
 color:#fff;
 font-weight:750;
}
.public-nav-toggle{
 display:none;
 margin-left:auto;
 width:42px;height:42px;
 padding:0;
 align-items:center;
 justify-content:center;
 border:0;
 border-radius:9px;
 background:#ffffff12;
 color:#fff;
 font-size:20px;
 cursor:pointer;
}
.public-main{
 width:min(calc(100% - 36px),1280px);
 margin:0 auto;
 padding:92px 0 42px;
 min-height:calc(100vh - 62px);
}
.public-footer{
 padding:18px;
 text-align:center;
 color:var(--muted,#6b7785);
}
.public-footer a{color:inherit;text-decoration:none}
.page-head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:18px;
 margin-bottom:22px;
}
.page-head h1{font-size:26px;margin:0 0 5px}
.page-head h2{margin:0 0 5px}
.muted{color:var(--muted,#6b7785)}
.card{
 background:var(--surface,#fff);
 border:1px solid var(--line,#e4e8ed);
 border-radius:12px;
 padding:20px;
 margin-bottom:var(--ag-block-gap,16px);
}
.grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:var(--ag-block-gap,16px);
}
.btn,button{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:7px;
 border:0;
 background:var(--accent,#1769aa);
 color:#fff;
 padding:var(--ag-btn-y,9px) var(--ag-btn-x,14px);
 border-radius:8px;
 text-decoration:none;
 cursor:pointer;
 font:inherit;
}
.btn.secondary,button.secondary{background:#eef2f5;color:#26323d}
.btn:hover,button:hover{filter:brightness(.97)}
label{display:block;font-weight:650;margin-bottom:12px}
input,select,textarea{
 width:100%;
 max-width:100%;
 min-width:0;
 padding:10px;
 border:1px solid #cbd3da;
 border-radius:7px;
 margin-top:5px;
 background:#fff;
 color:inherit;
 font:inherit;
}
textarea{min-height:100px}
input:focus,select:focus,textarea:focus{
 outline:0;
 border-color:var(--accent,#1769aa);
 box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#1769aa) 12%,transparent);
}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{
 padding:11px 12px;
 border-bottom:1px solid var(--line,#e4e8ed);
 text-align:left;
}
th{color:var(--muted,#6b7785);font-size:12px}
.pagination{
 display:flex;
 gap:8px;
 align-items:center;
 flex-wrap:wrap;
 margin:18px 0;
}
.static-page-content{line-height:1.65;overflow-wrap:anywhere}
.static-page-content h1:first-child,
.static-page-content h2:first-child{margin-top:0}
.home-hero{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:24px;
 padding:26px;
}
.home-hero-copy{min-width:0;max-width:820px}
.home-hero h1{
 font-size:clamp(30px,5vw,52px);
 line-height:1.04;
 letter-spacing:-.035em;
 margin:0 0 12px;
}
.home-hero p{
 max-width:760px;
 margin:0;
 color:var(--muted,#6b7785);
 font-size:17px;
 line-height:1.6;
}
.home-actions{
 display:flex;
 align-items:center;
 gap:8px;
 flex-wrap:wrap;
 margin-top:18px;
}
.home-public-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:var(--ag-block-gap,16px);
 align-items:start;
}
.home-public-block{min-width:0;margin:0}
.home-section-head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:12px;
 margin-bottom:14px;
}
.home-section-head h2{font-size:21px;margin:0 0 4px}
.home-section-head p{margin:0;color:var(--muted,#6b7785)}
.home-list{display:grid;gap:4px}
.home-item{
 display:block;
 padding:11px 0;
 border-bottom:1px solid #edf0f2;
 color:inherit;
 text-decoration:none;
}
.home-item:last-child{border-bottom:0}
.home-item strong{display:block}
.home-item span{
 display:block;
 margin-top:4px;
 color:var(--muted,#6b7785);
 line-height:1.5;
}
.home-item:hover strong{text-decoration:underline}
.home-static-content{line-height:1.6;overflow-wrap:anywhere}
.home-static-content>:first-child{margin-top:0}
.home-static-content>:last-child{margin-bottom:0}
.login-page-shell{
 width:min(calc(100% - 28px),460px);
 margin:0 auto;
 padding-top:18px;
}
.login-card{
 width:100%;
 min-width:0;
 background:var(--surface,#fff);
 border:1px solid var(--line,#e4e8ed);
 border-radius:12px;
 padding:22px;
 box-shadow:none;
 overflow:hidden;
}
.login-brand{text-align:center;margin-bottom:22px}
.login-logo-shell{
 width:62px;height:62px;
 margin:0 auto 12px;
 display:grid;place-items:center;
 border-radius:12px;
 background:#f0f4f7;
 color:var(--accent,#1769aa);
 font-size:25px;
 overflow:hidden;
}
.login-logo-shell img{
 width:100%;height:100%;object-fit:contain;
 border-radius:var(--ag-image-radius,10px);
}
.login-brand h1{margin:0;font-size:24px}
.login-subtitle{margin-top:6px;color:var(--muted,#6b7785)}
.login-input-shell{
 display:flex;
 align-items:center;
 gap:9px;
 width:100%;
 min-width:0;
 padding:0 10px;
 border:1px solid #cbd3da;
 border-radius:7px;
 background:#fff;
}
.login-input-shell:focus-within{
 border-color:var(--accent,#1769aa);
 box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#1769aa) 12%,transparent);
}
.login-input-shell i{color:#7b8792}
.login-input-shell input{
 border:0;
 outline:0;
 box-shadow:none!important;
 margin:0;
 padding:11px 0;
 background:transparent;
}
.login-form-meta{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 flex-wrap:wrap;
 font-size:13px;
 margin:0 0 15px;
}
.login-card form label{padding:5px 0}
.login-card form label>span{display:block;padding:10px 0}
.remember-row{
 display:flex;
 align-items:center;
 gap:7px;
 margin:0;
 font-weight:500;
}
.remember-row input{width:auto;margin:0}
.remember-row .public-switch{padding:0}
.public-switch{position:relative;display:inline-flex!important;align-items:center;width:46px;height:26px;padding:0!important;flex:0 0 auto}
.public-switch input{position:absolute;opacity:0;pointer-events:none}
.public-switch i{position:absolute;inset:0;border-radius:999px;background:#d8e0e6;transition:.18s}
.public-switch i:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:.18s}
.public-switch input:checked+i{background:var(--accent,#1769aa)}
.public-switch input:checked+i:before{transform:translateX(20px)}
.login-card form>button{width:100%;margin-top:2px}
.login-error{
 padding:11px 12px;
 margin-bottom:14px;
 border:1px solid #f2b8b5;
 border-radius:9px;
 background:#fff2f1;
 color:#8f1d18;
}
.toast-stack{
 position:fixed;
 top:78px;
 right:18px;
 z-index:9999;
 display:grid;
 gap:10px;
 width:min(420px,calc(100vw - 36px));
}
.toast{
 position:relative;
 padding:14px 44px 14px 16px;
 border-radius:12px;
 box-shadow:0 12px 30px #0002;
 background:#fff;
 border:1px solid #e4e8ed;
}
.toast.error{background:#fff2f1;border-color:#f2b8b5;color:#8f1d18}
.toast.success{background:#effaf3;border-color:#b9e4c5;color:#116b35}
.toast.info{background:#eef6ff;border-color:#bdd7f4;color:#174f7c}
.toast button{
 position:absolute;right:8px;top:8px;
 border:0;background:transparent;color:inherit;
 font-size:20px;padding:4px 8px;
}
@media(max-width:950px){
 .public-nav-toggle{display:inline-flex}
 .public-nav{
   display:none;
   position:absolute;
   top:58px;
   left:10px;right:10px;
   margin:0;
   padding:9px;
   flex-direction:column;
   align-items:stretch;
   gap:3px;
   background:var(--surface,#fff);
   border:1px solid var(--line,#e4e8ed);
   border-radius:12px;
   box-shadow:0 18px 42px #0002;
 }
 .public-nav.open{display:flex}
 .public-nav-link{
   width:100%;
   color:#34404b;
   padding:10px 12px;
 }
 .public-nav-link:hover,
 .public-nav-link:focus-visible{
   background:#edf4f9;
   color:var(--accent,#1769aa);
 }
 .public-nav-account{
   background:color-mix(in srgb,var(--accent,#1769aa) 12%,#fff);
   color:var(--accent,#1769aa);
 }
}
@media(max-width:760px){
 .public-topbar{height:58px;padding:0 14px}
 .public-brand-title{font-size:16px}
 .public-brand img{max-height:34px;max-width:125px}
 .public-main{
   width:min(calc(100% - 24px),1280px);
   padding-top:76px;
 }
 .grid,.home-public-grid{grid-template-columns:1fr}
 .page-head{flex-direction:column;align-items:stretch;gap:10px}
 .card{padding:14px;border-radius:10px}
 .home-hero{padding:18px;flex-direction:column}
 .home-hero p{font-size:15px}
 input,select,textarea{font-size:16px}
 .login-page-shell{width:100%;padding-top:0}
 .login-card{padding:18px 16px}
 .login-form-meta{align-items:flex-start;flex-direction:column}
 .toast-stack{top:70px}
}
