:root{--bg:#f5f7fb;--card:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#1677ff;--primary-hover:#0958d9;--danger:#ef4444;--success:#16a34a;--warning:#f59e0b;--shadow:0 6px 18px #1118270f;--radius:12px;--radius-sm:10px;--sans:system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "PingFang SC", "Microsoft YaHei", sans-serif;font:14px/1.5 var(--sans);color:var(--text);background:var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);margin:0}#root{width:100%;min-height:100vh}h1,h2,h3,h4{color:var(--text);margin:0}h2{font-size:20px;font-weight:700}h3{font-size:16px;font-weight:700}h4{font-size:14px;font-weight:700}button{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:10px;padding:8px 12px;transition:all .15s}button:hover{border-color:#cfd5df;box-shadow:0 2px 10px #1118270f}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}input,select,textarea{border:1px solid var(--border);font:inherit;color:var(--text);background:#fff;border-radius:10px;outline:none;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:#1677ffa6;box-shadow:0 0 0 3px #1677ff26}table{border-collapse:collapse;background:#fff;width:100%}thead tr{background:#f3f4f6}th,td{border-top:1px solid #f0f2f5}.oc-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.oc-muted{color:var(--muted)}*{box-sizing:border-box}html{width:100%;min-height:100%}body{width:100%;min-height:100%;overflow-x:hidden}button,input,select,textarea,img,video,canvas{max-width:100%}.app-shell{background:var(--bg);min-height:100vh}.app-header{z-index:100;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;position:sticky;top:0}.app-header-main{justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:10px 16px;display:flex}.app-brand{cursor:pointer;min-width:0}.app-title{white-space:nowrap;text-overflow:ellipsis;font-weight:800;line-height:1.25;overflow:hidden}.app-subtitle{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.app-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.app-menu-toggle{display:none}.app-nav{flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 10px;display:flex}.app-nav-item{background:#fff;border-radius:999px;padding:6px 12px;font-size:13px}.app-nav-item-active{border-color:var(--primary);color:var(--primary);background:#1677ff14;font-weight:700}.app-main{min-width:0}.responsive-page{max-width:1600px;margin:0 auto;padding:16px}.responsive-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.responsive-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.responsive-table{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.responsive-table>table{min-width:900px}.responsive-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=768px){:root{font-size:14px}.app-header-main{min-height:52px;padding:8px 10px}.app-title{max-width:58vw;font-size:15px}.app-subtitle{max-width:58vw;font-size:11px}.app-menu-toggle{display:inline-flex}.app-logout-button{padding-left:10px;padding-right:10px}.app-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 10px 10px;display:none}.app-nav.app-nav-open{display:grid}.app-nav-item{width:100%;min-height:36px;padding:7px 8px}.responsive-page{padding:8px}.responsive-grid-2,.responsive-grid-3{grid-template-columns:1fr;gap:8px}.responsive-actions{align-items:stretch}.responsive-actions>button,.responsive-actions>a,.responsive-actions>label,button,input,select,textarea{min-height:36px}th,td{white-space:nowrap}}
