*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}.site-shell{background:radial-gradient(circle at 0 0,#084f5d38,#0000 48%),radial-gradient(circle at 100% 100%,#0d63752e,#0000 46%),#f3f7f8;min-height:100vh}.top-banner{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#084f5df2;border-bottom:1px solid #0f6172;padding:16px 24px;position:sticky;top:0}.top-banner h1{color:#e9f5f7;letter-spacing:.02em;margin:0;font-family:Noto Sans TC,Trebuchet MS,Segoe UI,sans-serif;font-size:26px}.site-body{grid-template-columns:240px 1fr;gap:20px;max-width:1280px;margin:0 auto;padding:20px;display:grid}.left-nav{background:#f8fbfc;border:1px solid #c6dde3;border-radius:16px;align-self:start;gap:8px;padding:12px;display:grid;position:sticky;top:88px}.nav-item{color:#1b4f5a;border-radius:10px;padding:10px 12px;font-weight:700;text-decoration:none;transition:all .2s}.nav-item:hover{background:#e6f1f4;transform:translate(2px)}.nav-item.active{color:#fff;background:linear-gradient(100deg,#084f5d,#0c6575)}.page-panel{background:#fff;border:1px solid #cfe1e6;border-radius:20px;min-height:70vh;padding:24px;box-shadow:0 16px 30px #084f5d1f}.markdown-content{color:#23353a;font-family:Noto Sans TC,Segoe UI,sans-serif;line-height:1.75}.markdown-content h1,.markdown-content h2,.markdown-content h3{color:#0f3f49;margin-top:22px}.markdown-content table{border-collapse:collapse;border-radius:10px;width:100%;margin:14px 0;overflow:hidden}.markdown-content th,.markdown-content td{text-align:left;border:1px solid #d4e4e8;padding:10px}.markdown-content thead{background:#eaf3f5}.partners-login-row{background:#edf6f8;border:1px dashed #6fa8b3;border-radius:12px;align-items:center;gap:14px;margin:8px 0 20px;padding:12px 14px;display:flex}.partners-hint{color:#21535e;font-weight:700}.customer-login-button{color:#fff;background:#084f5d;border-radius:999px;padding:8px 14px;font-weight:700;text-decoration:none}.customer-login-button:hover{background:#0b5f70}.auth-shell,.dashboard-shell,.dashboard-loading{background:radial-gradient(circle at 0 0,#084f5d38,#0000 48%),radial-gradient(circle at 100% 100%,#0d63752e,#0000 46%),#f3f7f8;min-height:100vh;padding:24px}.auth-shell{place-items:center;display:grid}.auth-card,.dashboard-card{background:#fff;border:1px solid #cfe1e6;border-radius:20px;box-shadow:0 16px 30px #084f5d1f}.auth-card{width:min(440px,100%);padding:24px}.auth-card h2{color:#0f3f49;margin:0 0 14px}.auth-form{gap:12px;display:grid}.field-group{gap:6px;display:grid}.field-group label{color:#21535e;font-weight:700}.field-group input{font:inherit;border:1px solid #b8d3da;border-radius:10px;padding:10px 12px}.field-group input:focus{border-color:#084f5d;outline:2px solid #084f5d40}.auth-error{color:#af2f2f;margin:4px 0 0}.themed-button{color:#fff;font:inherit;cursor:pointer;background:#084f5d;border:none;border-radius:999px;font-weight:700;transition:background .2s}.themed-button:hover{background:#0b5f70}.themed-button:disabled{cursor:not-allowed;opacity:.75}.auth-submit{width:100%;margin-top:2px;padding:10px 14px}.dashboard-loading{color:#21535e;place-items:center;font-weight:700;display:grid}.dashboard-card{max-width:1200px;margin:0 auto;padding:24px}.dashboard-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.dashboard-header h1{color:#0f3f49;margin:0;font-size:28px}.dashboard-header p{color:#21535e;margin:6px 0 0}.logout-button,.refresh-button{padding:9px 16px}.refresh-button{margin-top:18px}.inventory-table-wrap{border:1px solid #d4e4e8;border-radius:12px;overflow-x:auto}.inventory-table{border-collapse:collapse;width:100%;min-width:640px}.inventory-table th,.inventory-table td{text-align:left;border-bottom:1px solid #d4e4e8;padding:10px}.inventory-table thead{background:#eaf3f5}@media (width<=900px){.dashboard-header{flex-direction:column;align-items:flex-start}.top-banner h1{font-size:20px}.site-body{grid-template-columns:1fr;padding:14px}.left-nav{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.page-panel{padding:16px}.partners-login-row{flex-direction:column;align-items:flex-start}}
