
:root{--background:#f7f7f8;--surface:#fff;--foreground:#171a20;--muted:#626975;--border:#eaeaea;--border-strong:#d5d7dc;--primary:#0f766e;--primary-hover:#115e59;--primary-light:#e8f5f2;--secondary:#f0f1f3;--button-hover:#f1f1f3;--error:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font:14px/1.5 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button,a,select,label[for]{cursor:pointer}button,a{outline:none}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);color:var(--foreground);font-weight:500;line-height:1.25;transition:background .15s}button:hover,.button:hover{background:var(--button-hover);text-decoration:none}.primary{background:var(--primary);border-color:var(--primary);color:#fff}.primary:hover{background:var(--primary-hover)}.ghost{border-color:transparent;background:transparent;color:var(--muted)}.danger{color:#be123c;background:#fff1f2;border-color:transparent}.icon-button{width:40px;padding:8px;flex-shrink:0}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0}input,select{height:40px;background:var(--surface);color:var(--foreground);border:1px solid var(--border-strong);border-radius:12px;padding:0 12px;min-width:0}input:focus,select:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 2px #0f766e1a}input::placeholder{color:var(--muted)}input[type=checkbox]{appearance:none;width:20px;height:20px;padding:0;border-radius:6px;flex-shrink:0;cursor:pointer}input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}input[type=checkbox]:checked:after{content:'✓';color:#fff;display:block;text-align:center;font-size:14px;line-height:18px}button[aria-busy=true]{cursor:progress;opacity:.7}button:disabled{cursor:not-allowed;opacity:.5}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,p{margin:0}h1{font-size:20px;line-height:1.4;font-weight:650;letter-spacing:-.4px}h2{font-size:18px;line-height:1.5;font-weight:600}p{color:var(--muted);text-wrap:pretty}.app{display:flex;min-height:100dvh}.side{width:240px;flex-shrink:0;background:var(--surface);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:30}.brand{height:72px;display:flex;gap:10px;align-items:center;padding:0 24px;font-size:18px;font-weight:650;color:var(--foreground);border-bottom:1px solid var(--border)}.brand:hover{text-decoration:none}.brand-mark{width:32px;height:32px;display:grid;place-items:center;background:var(--primary);color:white;border-radius:10px}.brand small{display:block;font-size:10px;font-weight:500;color:var(--muted);letter-spacing:1.3px}.nav{padding:20px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.nav a{display:flex;align-items:center;gap:12px;height:40px;padding:0 12px;border-radius:12px;color:#4a515c;white-space:nowrap}.nav a:hover{background:#f7f7f8;text-decoration:none}.nav a.active{color:var(--primary);background:var(--primary-light);font-weight:600}.nav small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:20px 12px 6px}.side-foot{margin-top:auto;padding:20px 24px;font-size:12px;color:var(--muted)}.side-foot span{display:block;margin-top:8px}.main{margin-left:240px;min-width:0;flex:1}.top{height:72px;padding:0 32px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.crumb{font-size:12px;color:var(--muted)}.account{display:flex;align-items:center;gap:12px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--primary-light);color:var(--primary);font-size:12px;font-weight:650}.content{padding:28px 32px 40px;max-width:1920px}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-intro p{margin-top:4px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.search{width:300px;max-width:100%}.filters{display:flex;gap:8px;flex-wrap:wrap}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;color:var(--muted);font-size:12px}.results-bar strong{color:var(--foreground);font-weight:600}.results-bar select{height:32px;font-size:12px;border-radius:8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px;align-items:start}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;min-width:0}.post-head{padding:16px;display:flex;align-items:center;gap:10px}.post-head .avatar{border-radius:10px;flex-shrink:0}.post-head strong{font-size:14px;font-weight:600}.post-head .small{font-size:12px;color:var(--muted)}.media{position:relative;aspect-ratio:1/1;background:#edeef0;display:grid;place-items:center;overflow:hidden}.media img{width:100%;height:100%;object-fit:cover}.media-empty{color:var(--muted);display:grid;gap:12px;justify-items:center;padding:24px}.bookmark{position:absolute;top:12px;right:12px;background:white;width:36px;height:36px;min-height:36px;border:1px solid #e4e4e7;border-radius:10px;padding:8px}.bookmark[aria-pressed=true]{color:var(--primary);background:var(--primary-light)}.bookmark[aria-pressed=true] svg{fill:currentColor}.media-type{position:absolute;bottom:12px;left:12px;background:#fff;border-radius:8px;padding:4px 8px;font-size:11px}.post-body{padding:16px}.caption{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.65;min-height:69px;color:#404751}.metrics{display:flex;gap:16px;padding:14px 0;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.metrics span{display:flex;align-items:center;gap:5px}.metrics .icon{width:15px;height:15px}.post-footer{border-top:1px solid var(--border);padding-top:12px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.post-footer a{display:flex;align-items:center;gap:6px}.post-footer .icon{width:14px;height:14px}.empty{grid-column:1/-1;padding:64px 24px;background:var(--surface);border-radius:16px;text-align:center}.empty .icon{width:28px;height:28px;color:#737b87;margin-bottom:16px}.empty h2{font-size:16px;margin-bottom:8px}.empty p{max-width:440px;margin:auto;line-height:1.7}.empty button{margin-top:20px}.table-wrap{background:var(--surface);border-radius:16px;overflow:auto}.data-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;text-align:left}.data-table th{font-size:12px;color:var(--muted);font-weight:500;padding:14px 20px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:16px 20px;border-bottom:1px solid var(--border);font-size:14px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafafa}.data-table .num{text-align:right;white-space:nowrap}.data-table td:first-child{min-width:160px}.cell-title{font-weight:600;display:block}.cell-sub{font-size:12px;color:var(--muted);display:block;margin-top:4px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--secondary);border-radius:6px;font-size:12px;white-space:nowrap}.badge.ok{background:#ecfdf5;color:#047857}.badge.warn{background:#fffbeb;color:#92400e}.split{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px}.folder-nav{display:flex;flex-direction:column;gap:4px}.folder-nav button{justify-content:flex-start;text-align:left;border-color:transparent;background:transparent}.folder-nav button.active{background:var(--primary-light);color:var(--primary)}.folder-nav small{color:var(--muted);padding:16px 12px 4px}.panel{background:var(--surface);border-radius:16px;padding:24px;margin-bottom:24px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-head h2{font-size:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--border)}.setting-row strong{font-weight:500;display:block}.setting-row p{font-size:12px;margin-top:4px}.summary{display:flex;gap:32px;padding:20px 24px;background:var(--surface);border-radius:16px;margin-bottom:24px}.summary strong{display:block;font-size:24px;font-weight:600}.summary span{font-size:12px;color:var(--muted)}dialog{width:480px;max-width:calc(100% - 32px);max-height:calc(100dvh - 48px);overflow:auto;border:0;border-radius:20px;padding:24px;color:var(--foreground);background:var(--surface);box-shadow:0 20px 80px #11182726}dialog::backdrop{background:#0003}dialog h2{font-size:18px}dialog p{margin-top:8px;line-height:1.7}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:20px}.dialog-head button{border:0;min-height:32px;height:32px;width:32px;padding:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.form-grid{display:grid;gap:18px}.field{display:grid;gap:6px}.field label{width:fit-content;font-weight:500}.field input,.field select{width:100%}.field small{color:var(--muted);font-size:12px}.required{color:var(--error)}.folder-option{display:flex;align-items:center;gap:12px;padding:10px 0;min-height:44px;cursor:pointer}.folder-option span{flex:1}.folder-option small{color:var(--muted)}.error{color:var(--error);font-size:12px;min-height:18px;margin-top:12px}.notice{color:var(--muted);font-size:12px;line-height:1.7;margin:16px 0}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:80;background:#171a20;color:#fff;padding:12px 20px;border-radius:12px;max-width:calc(100% - 32px);box-shadow:0 8px 30px #1112}.hidden{display:none!important}.mobile-menu{display:none}.backdrop{display:none}.login{display:grid;place-items:center;min-height:100dvh;padding:24px}.login-card{width:380px;max-width:100%;background:var(--surface);padding:32px;border-radius:20px}.login-card .brand{height:auto;padding:0;border:0;margin-bottom:32px}.login-card h1{margin-bottom:8px}.login-card form{margin-top:28px}.login-card button[type=submit]{width:100%}.password-field{position:relative}.password-field input{width:100%;padding-right:48px}.password-field button{position:absolute;right:2px;top:0;bottom:0;margin:auto;border:0;background:transparent;padding:8px;width:40px}.login-card footer{margin-top:28px;font-size:12px;text-align:center;color:var(--muted)}.loading{opacity:.6;pointer-events:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}*:hover::-webkit-scrollbar-thumb{background:#c9cdd2}@media(min-width:1600px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1100px){.side{width:216px}.main{margin-left:216px}.content{padding:24px}.top{padding:0 24px}.split{grid-template-columns:170px minmax(0,1fr)}}@media(max-width:800px){.side{transform:translateX(-100%);transition:transform .35s cubic-bezier(.32,.72,0,1);width:256px}.side.open{transform:translateX(0);transition-duration:.5s}.side.open+.backdrop{display:block;position:fixed;inset:0;background:#0002;z-index:25}.main{margin-left:0}.mobile-menu{display:inline-flex}.top{height:64px;padding:0 16px}.top-title{display:flex;align-items:center;gap:8px}.crumb{display:none}.content{padding:24px 16px}.page-intro{align-items:start;margin-bottom:20px}.page-intro p{font-size:12px;max-width:260px}.account .role-label{display:none}.account{gap:8px}.account button{padding:8px;font-size:12px}.search{width:100%}.toolbar{gap:12px}.filters{width:100%;display:grid;grid-template-columns:1fr 1fr}.filters select{width:100%}.filters button{padding:8px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.split{display:block}.folder-nav{display:flex;flex-direction:row;overflow:auto;margin-bottom:20px}.folder-nav small{display:none}.folder-nav button{white-space:nowrap}.data-table{min-width:640px}.data-table td:first-child,.data-table th:first-child{position:sticky;left:0;background:var(--surface);max-width:180px}.summary{gap:24px;padding:16px}.panel{padding:20px}.setting-row{align-items:start}.page-intro button{flex-shrink:0}.setting-row p{max-width:260px}.cell-sub{overflow-wrap:anywhere}.login-card{padding:24px}input,select{font-size:16px;height:44px}.form-grid button{min-height:44px}}@media(max-width:580px){.grid{grid-template-columns:minmax(0,1fr)}.results-bar{gap:8px}.summary{display:grid;grid-template-columns:1fr 1fr}.page-intro{flex-wrap:wrap}.media{aspect-ratio:1.12/1}.panel-head{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
