/* NiagaKing unified management UI foundation v3 */
:root{
  --nk-primary:#0b63ce;--nk-primary-hover:#084faa;--nk-primary-soft:#eaf3ff;
  --nk-bg:#f2f5f8;--nk-surface:#fff;--nk-surface-soft:#f8fafc;
  --nk-text:#172033;--nk-muted:#667085;--nk-border:#d7e0e9;
  --nk-success:#087f5b;--nk-warning:#b45309;--nk-danger:#c62828;
  --nk-radius-sm:9px;--nk-radius:13px;--nk-radius-lg:18px;
  --nk-shadow-sm:0 2px 8px rgba(23,32,51,.07);--nk-shadow:0 10px 28px rgba(23,32,51,.10);
  font-family:Inter,"Noto Sans SC","Noto Sans",Segoe UI,Arial,sans-serif!important;color:var(--nk-text);background:var(--nk-bg)
}
*{box-sizing:border-box}body{font-size:16px;line-height:1.5;background:var(--nk-bg);color:var(--nk-text)}
.shell{grid-template-columns:252px minmax(0,1fr)!important}
aside{background:#16283f!important;padding:22px 14px!important;box-shadow:4px 0 18px rgba(15,31,51,.12)}
.brand{font-size:22px!important}.brand small{line-height:1.45!important}.sidebar-language{margin-bottom:20px!important}
nav{gap:6px!important}nav button{min-height:48px!important;padding:12px 14px!important;border-radius:var(--nk-radius-sm)!important;font-size:15px!important}nav button:hover{background:rgba(255,255,255,.08)!important}nav button.active{background:var(--nk-primary)!important;box-shadow:0 4px 14px rgba(11,99,206,.32)}
main{width:100%;max-width:1600px!important;padding:28px 32px!important}header{gap:18px!important}h1{font-size:28px!important;letter-spacing:-.02em}
.metric,.panel,.login,.card{border:1px solid var(--nk-border)!important;border-radius:var(--nk-radius)!important;background:var(--nk-surface)!important;box-shadow:var(--nk-shadow-sm)!important}.metric strong{font-size:30px!important}.panel h2{font-size:20px!important}
button,input,select,textarea{font:inherit}button{min-height:44px!important;border-radius:var(--nk-radius-sm)!important;font-weight:650;touch-action:manipulation}input,select,textarea{min-height:44px;border-radius:var(--nk-radius-sm)!important;border-color:var(--nk-border)!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(11,99,206,.28);outline-offset:2px}
th{color:var(--nk-muted);font-size:14px;background:var(--nk-surface-soft)}th,td{padding:14px 16px!important}.notice{border-left:4px solid var(--nk-primary)!important}
@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:850px){.shell{grid-template-columns:1fr!important}aside{position:static!important;height:auto!important}nav{grid-template-columns:repeat(2,minmax(0,1fr))}main{padding:18px!important}}
@media(max-width:540px){.metrics,.status-grid,nav{grid-template-columns:1fr!important}header{align-items:flex-start!important;gap:12px!important;flex-direction:column}main{padding:14px!important}th,td{padding:11px 10px!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* NIAGAKING MANAGEMENT UI V7 */
body[data-portal="platform"],body[data-portal="owner"]{min-width:320px}
.shell{grid-template-columns:252px minmax(0,1fr)}
aside{overflow:hidden}
nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
nav button{width:100%;gap:10px;line-height:1.35}
main{min-width:0}
header{gap:18px;flex-wrap:wrap}
header>div:first-child{min-width:240px;flex:1}
header>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.metrics{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.metric strong{overflow-wrap:anywhere}
.panel{overflow:hidden}
.table-scroll{margin:0 -4px;padding:0 4px;overscroll-behavior-x:contain}
table{min-width:720px}
th{position:sticky;top:0;z-index:1}
td{vertical-align:top}
.notice,.success,.error,.empty{line-height:1.55}
input,select,textarea{font-size:16px}
.form-actions button,.table-action,.panel-title button{min-height:44px}
@media(max-width:1050px){.shell{grid-template-columns:220px minmax(0,1fr)}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.shell{display:block}aside{position:relative;height:auto;max-height:none}.brand{padding-right:8px}.sidebar-language{max-width:none}nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}nav button:hover{transform:none}main{padding:16px}header{align-items:flex-start}.metrics,.form-grid{grid-template-columns:1fr}.panel{padding:16px}.todo-card{align-items:stretch}}
@media(max-width:460px){nav{grid-template-columns:1fr}h1{font-size:24px}header>div:first-child{min-width:0}.metric strong{font-size:26px}}

/* NIAGAKING MANAGEMENT UI V8: clear hierarchy and action guidance */
body[data-portal="platform"] h1,body[data-portal="owner"] h1{font-size:clamp(26px,2.4vw,34px);line-height:1.2;letter-spacing:-.02em}
body[data-portal="platform"] h2,body[data-portal="owner"] h2{line-height:1.3;color:var(--nk-text)}
.metric{position:relative;min-height:132px;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:20px}
.metric>span{color:var(--nk-muted);font-size:14px;font-weight:700}.metric>strong{font-size:clamp(28px,2.5vw,38px);line-height:1.1}.metric>small{min-height:20px;color:var(--nk-muted);font-size:13px}
.notice,.success,.error{padding:14px 16px;border-radius:10px;border-left:5px solid var(--nk-primary);background:#eef6ff}
.success{border-left-color:var(--nk-success);background:#ecfdf5;color:#066b4c}.error{border-left-color:var(--nk-danger);background:#fff1f2;color:#a61b1b}
.status,.badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:800;white-space:nowrap}
.status.active,.status.online,.status.healthy{background:#dcfce7;color:#087f5b}.status.suspended,.status.needs_check{background:#ffedd5;color:#9a3412}.status.not_connected{background:#eef2f6;color:#667085}
.panel-title{align-items:flex-start}.panel-title h2,.panel-title p{margin-top:0}.panel-title p{max-width:720px;color:var(--nk-muted);line-height:1.55}
.form-grid label{gap:7px;color:#344054;font-weight:700}.form-grid label small{font-weight:500;line-height:1.45;color:var(--nk-muted)}
button:disabled{cursor:not-allowed!important;opacity:.48!important}.empty,.empty-action{padding:34px 20px;text-align:center;color:var(--nk-muted)}
@media(max-width:760px){.metric{min-height:112px}.panel-title{display:grid;gap:12px}.panel-title>button{width:100%}}


/* NIAGAKING MANAGEMENT UI V11: optional owner onboarding path */
.next-step-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:18px;padding:20px 22px;border:1px solid #bfd7ff;border-radius:14px;background:linear-gradient(135deg,#f4f8ff,#eef6ff);box-shadow:0 8px 24px rgba(35,92,170,.08)}
.next-step-card small{display:block;margin-bottom:5px;color:var(--nk-primary);font-weight:800}.next-step-card h2{margin:0 0 6px;font-size:20px}.next-step-card p{max-width:760px;margin:0;color:var(--nk-muted);line-height:1.55}.next-step-card button{min-width:112px;min-height:44px;white-space:nowrap}
@media(max-width:760px){.next-step-card{align-items:stretch;display:grid}.next-step-card button{width:100%}}


/* NIAGAKING MANAGEMENT UI V12: unsaved-form and feedback safety */
form.form-dirty{position:relative;border-color:#f5b942!important;box-shadow:0 0 0 3px rgba(245,185,66,.14)}
form.form-dirty::before{content:'尚未保存';position:absolute;top:8px;right:10px;padding:3px 8px;border-radius:999px;background:#fff3cd;color:#7a5200;font-size:12px;font-weight:800}
[role="status"]:not(:empty){margin-top:12px}
@media(max-width:760px){form.form-dirty::before{position:static;display:inline-block;margin-bottom:8px}}


/* NIAGAKING MANAGEMENT UI V13: loading and recovery states */
#restaurant-management-new main{position:relative}
#restaurant-management-new.is-loading main::before{content:'';position:fixed;z-index:20;top:0;left:252px;right:0;height:4px;background:linear-gradient(90deg,var(--nk-primary),#65a9ff,var(--nk-primary));background-size:200% 100%;animation:nk-loading 1.1s linear infinite}
#restaurant-management-new.is-loading main>section{opacity:.72;transition:opacity .15s ease}
.error-state{display:grid;justify-items:start;gap:12px;max-width:680px;padding:28px}.error-state h2,.error-state p{margin:0}.error-state small{color:var(--nk-muted)}
@keyframes nk-loading{to{background-position:-200% 0}}
@media(max-width:760px){#restaurant-management-new.is-loading main::before{left:0}}
@media(prefers-reduced-motion:reduce){#restaurant-management-new.is-loading main::before{animation:none}}


/* NIAGAKING MANAGEMENT UI V14: verified touch target sizing */
.sidebar-language select,.global-language-switcher select{min-height:44px}

/* NIAGAKING MANAGEMENT UI V16: commercial package and entitlement controls */
.entitlement-control{min-width:260px;margin-top:8px;border:1px solid #ccd6e0;border-radius:10px;background:#f8fafc;text-align:left}
.entitlement-control summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;cursor:pointer;color:var(--nk-primary);font-weight:800}
.entitlement-control summary span{padding:3px 8px;border-radius:999px;background:#fff3cd;color:#725000;font-size:12px}
.entitlement-body{display:grid;gap:10px;padding:12px;border-top:1px solid #dde5ec}
.entitlement-body>label{display:grid;gap:5px;font-weight:700}.entitlement-body select{width:100%}
.entitlement-body fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:10px;border:1px solid #d6dee7;border-radius:8px}
.entitlement-body legend{padding:0 5px;font-weight:800}.entitlement-body fieldset label{display:flex;align-items:center;gap:6px;font-weight:600}
.entitlement-body input[type="checkbox"]{width:18px;height:18px}.entitlement-body small{line-height:1.45;color:var(--nk-muted)}
@media(max-width:760px){.entitlement-control{min-width:230px}.entitlement-body fieldset{grid-template-columns:1fr}}


/* NIAGAKING MANAGEMENT UI V15: keyboard and senior readability */
.skip-link{position:fixed;z-index:9999;top:8px;left:8px;transform:translateY(-160%);padding:11px 14px;border-radius:8px;background:#172033;color:#fff;font-weight:800;text-decoration:none}.skip-link:focus{transform:translateY(0);outline:3px solid #ffca28;outline-offset:2px}
#main-content:focus{outline:none}.metric small,.form-grid small,.panel small,.next-step-card small,.error-state small{font-size:max(14px,.875rem)}
.panel p,.empty,.empty-action,.metric small,.form-grid small,.panel small{color:#4b5563}
main,table,form{overflow-wrap:anywhere}
@media(max-width:700px){main{font-size:1rem}dialog{max-height:94vh;overflow:auto}}

/* NiagaKing brand system phase 32 */
:root{--nk-primary:#17324d;--nk-primary-hover:#244a68;--nk-primary-soft:#edf2f6;--nk-brand:#f5b400}
.brand img{display:block;width:112px;height:56px;object-fit:contain;object-position:left center;margin-bottom:6px}
nav button.active{background:var(--nk-primary)!important;border-left:4px solid var(--nk-brand)!important;box-shadow:0 4px 14px rgba(23,50,77,.3)!important}
main button:not(.secondary):not(.danger):not(.danger-link),.login button{background:var(--nk-primary)!important;border:1px solid var(--nk-primary)!important;color:#fff!important;box-shadow:0 4px 12px rgba(23,50,77,.16)}
main button:not(.secondary):not(.danger):not(.danger-link):hover,.login button:hover{background:var(--nk-primary-hover)!important}
button.secondary{background:#fff!important;border:1px solid #9eabb8!important;color:var(--nk-primary)!important}
button.danger,.danger-link{background:#fff1f1!important;border-color:#dc2626!important;color:#b42318!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(245,180,0,.62)!important;outline-offset:2px}
