:root{--bg:#f6f6f3;--bg-subtle:#efefe9;--card:#fff;--text:#1b1d18;--text-secondary:#4c4f46;--muted:#8b8e83;--border:#e7e7df;--border-strong:#d9d9cf;--accent:#2e6b4d;--accent-hover:#245640;--accent-soft:#e9f2eb;--accent-soft-hover:#dcebe0;--accent-ring:#2e6b4d38;--warn:#b3541e;--warn-soft:#fbefe6;--danger:#b3261e;--danger-soft:#fbeae8;--info:#4a5bb8;--info-soft:#eef1fb;--ok:#2e6b4d;--shadow-xs:0 1px 2px #1b1d180d;--shadow-sm:0 1px 3px #1b1d180f, 0 4px 12px #1b1d180a;--shadow-md:0 2px 6px #1b1d1812, 0 14px 32px #1b1d1814;--r-sm:8px;--r-md:11px;--r-lg:15px;--r-pill:999px;--dur:.16s;--ease:cubic-bezier(.2, .6, .2, 1);--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13.5px;line-height:1.65}::selection{background:var(--accent-soft-hover);color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--r-pill);border:2.5px solid var(--bg);background:#d5d5cb}::-webkit-scrollbar-thumb:hover{background:#bcbcb0}button{appearance:none;border:1px solid var(--border-strong);background:var(--card);height:32px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;display:inline-flex}button:hover{background:var(--bg-subtle);color:var(--text);border-color:#c7c7bb}button:active{box-shadow:none;transform:translateY(1px)}button:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);border-color:var(--accent);outline:none}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-xs)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;box-shadow:var(--shadow-sm)}button.primary:active{background:var(--accent-hover);box-shadow:none;transform:translateY(1px)}button.danger{color:var(--danger);background:var(--card);border-color:#ecd2ce}button.danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}button:disabled:hover{background:var(--card);border-color:var(--border-strong);color:var(--text)}button.primary:disabled:hover{background:var(--accent);border-color:var(--accent);color:#fff}button.danger:disabled:hover{background:var(--card);color:var(--danger);border-color:#ecd2ce}.panel table button{border-radius:8px;height:27px;padding:0 10px;font-size:12px}input,select{appearance:none;border:1px solid var(--border-strong);background:var(--card);height:32px;color:var(--text);min-width:0;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-radius:9px;padding:0 11px;font-family:inherit;font-size:13px}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b8e83' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}input:hover,select:hover{border-color:#c3c3b7}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}input::placeholder{color:#a9aca1}input[type=checkbox]{appearance:auto;width:15px;height:15px;accent-color:var(--accent);cursor:pointer;border-radius:4.5px;flex:none;padding:0}.layout{min-height:100vh;display:flex}.sidebar{-webkit-backdrop-filter:saturate(1.6)blur(14px);backdrop-filter:saturate(1.6)blur(14px);border-right:1px solid var(--border);background:#ffffffd1;flex-direction:column;flex-shrink:0;width:196px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.sidebar h1{letter-spacing:-.01em;border-bottom:1px solid var(--border);align-items:center;gap:9px;margin-bottom:12px;padding:0 8px 14px;font-size:15px;font-weight:650;display:flex}.sidebar h1:before{content:"¥";background:linear-gradient(145deg, var(--accent) 0%, var(--accent-hover) 100%);color:#fff;width:24px;height:24px;box-shadow:var(--shadow-xs);border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.sidebar button{text-align:left;width:100%;box-shadow:none;border-radius:var(--r-pill);height:auto;color:var(--text-secondary);background:0 0;border:none;margin-bottom:2px;padding:7px 11px;font-size:13px;font-weight:500;display:flex}.sidebar button:hover{background:var(--bg-subtle);color:var(--text)}.sidebar button:active{transform:none}.sidebar button.active{background:var(--accent-soft);color:var(--accent-hover);font-weight:600}.sidebar .spacer{flex:1}.sidebar .foot{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.sidebar .foot button{color:var(--muted)}.sidebar .foot button:hover{background:var(--danger-soft);color:var(--danger)}.main{flex:1;min-width:0;max-width:1240px;padding:24px 28px 64px}.main h2{letter-spacing:-.012em;margin-bottom:14px;font-size:19px;font-weight:650}.main h3{letter-spacing:.04em;color:var(--muted);margin:20px 0 9px;font-size:12.5px;font-weight:600}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);margin-bottom:14px;padding:17px 19px}.panel h3:first-child{margin-top:0}.grid{gap:12px;display:grid}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:13px 15px}.stat:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.stat .k{color:var(--muted);letter-spacing:.02em;font-size:11.5px}.stat .v{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:3px;font-size:21px;font-weight:650;line-height:1.3}.stat .v.red,.stat .v .red{color:var(--danger)}.stat .v.green,.stat .v .green{color:var(--ok)}.stat .v.amber,.stat .v .amber{color:var(--warn)}.panel table{border-collapse:collapse;width:100%;font-size:12.5px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:9px}th{color:var(--muted);letter-spacing:.04em;white-space:nowrap;padding-top:2px;padding-bottom:8px;font-size:11px;font-weight:500}tbody tr{transition:background var(--dur) var(--ease)}tbody tr:hover{background:#fafaf6}tr:last-child td{border-bottom:none}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:11.5px}.tag{border-radius:var(--r-pill);background:var(--bg-subtle);color:var(--text-secondary);white-space:nowrap;border:none;align-items:center;margin:2px 6px 2px 0;padding:2px 9px;font-size:11.5px;font-weight:500;line-height:1.6;display:inline-flex}.tag.ok{background:var(--accent-soft);color:var(--accent-hover)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.tag.info{background:var(--info-soft);color:var(--info)}.form-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.form-row label{width:170px;color:var(--text-secondary);flex-shrink:0;font-size:13px}.form-row .hint{color:var(--muted);font-size:12px}.plat-group{border:1px solid var(--border);border-radius:var(--r-md,10px);background:var(--card);margin-bottom:10px}.plat-group summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:11px 14px;font-size:13.5px;font-weight:600;list-style:none;display:flex}.plat-group summary::-webkit-details-marker{display:none}.plat-group summary:before{content:"▸";color:var(--muted);font-size:12px;transition:transform .15s}.plat-group[open] summary:before{transform:rotate(90deg)}.plat-group summary:hover{background:var(--bg-subtle);border-radius:var(--r-md,10px)}.plat-group summary .tag{margin-left:auto}.plat-grid{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 20px;padding:6px 14px 14px;display:grid}.plat-grid .form-row{flex-direction:column;align-items:flex-start;gap:5px;margin-bottom:10px}.plat-grid .form-row label{width:auto;font-size:12px}.plat-grid .form-row label .req{color:var(--danger,#e5484d);margin-left:3px;font-weight:700}.plat-grid .form-row input{width:100%;max-width:360px}.notice{border-radius:var(--r-md);border:1px solid;border-left-width:3px;margin-bottom:12px;padding:10px 14px;font-size:13px}.notice.warn{background:var(--warn-soft);border-color:#ecd9c8;border-left-color:var(--warn);color:var(--warn)}.notice.danger{background:var(--danger-soft);border-color:#f0d4d0;border-left-color:var(--danger);color:var(--danger)}.notice.info{background:var(--info-soft);border-color:#d8def5;border-left-color:var(--info);color:var(--info)}.notice.ok{background:var(--accent-soft);border-color:var(--accent-soft-hover);border-left-color:var(--accent);color:var(--accent-hover)}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);width:380px;box-shadow:var(--shadow-md);padding:30px 28px}.login-card h1{letter-spacing:-.012em;align-items:center;gap:10px;margin-bottom:5px;font-size:18px;font-weight:650;display:flex}.login-card h1:before{content:"¥";background:linear-gradient(145deg, var(--accent) 0%, var(--accent-hover) 100%);color:#fff;width:28px;height:28px;box-shadow:var(--shadow-xs);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:inline-flex}.login-card p.sub{color:var(--muted);margin-bottom:20px;font-size:12.5px}.login-card input{width:100%;height:38px;margin-bottom:12px}.login-card button{width:100%;height:38px}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:13px;display:flex}.toolbar h2{margin-bottom:0}.muted{color:var(--muted)}.nowrap{white-space:nowrap}@media (width<=860px){.layout{flex-direction:column}.sidebar{z-index:20;border-right:none;border-bottom:1px solid var(--border);scrollbar-width:none;flex-direction:row;align-items:center;gap:4px;width:100%;height:auto;padding:10px 12px;position:sticky;top:0;overflow-x:auto}.sidebar::-webkit-scrollbar{display:none}.sidebar h1{border-bottom:none;flex:none;margin:0 10px 0 0;padding:0;font-size:14px}.sidebar h1:before{border-radius:6px;width:21px;height:21px;font-size:11.5px}.sidebar button{white-space:nowrap;flex:none;width:auto;margin-bottom:0;padding:6px 11px}.sidebar .spacer{display:none}.sidebar .foot{border-top:none;flex:none;margin:0 0 0 auto;padding-top:0}.main{padding:18px 14px 56px}}@media (width<=760px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,1fr)}.form-row{flex-direction:column;align-items:flex-start;gap:6px}.form-row label{width:auto;font-size:12px}.panel{overflow-x:auto}.panel table{min-width:720px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
