:root{font-family:Be Vietnam Pro,system-ui;color:#30261e;background:#eee7d7}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button:disabled{opacity:.55;cursor:not-allowed}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{background:#17120e;color:#eee7d7;padding:24px 16px;position:sticky;top:0;height:100vh}.logo{font-family:Georgia;font-size:21px;color:#e3c464;padding:10px}.nav a{display:block;color:#cfc4b2;text-decoration:none;padding:12px;border-radius:10px;margin:4px 0}.nav a.active{background:#c9a22722;color:#e3c464}.main{min-width:0;padding:28px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}h1,h2{font-family:Georgia}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{min-width:0;background:#fffaf0;border:1px solid #d4c5ab;border-radius:14px;padding:18px}.danger{background:#9b2e1e;color:#fff;border:0;padding:12px 18px;border-radius:10px;font-weight:700;cursor:pointer}.danger.compact{padding:9px 12px}.safe{background:#5f7a4e;color:#fff;border:0;padding:11px 16px;border-radius:10px;cursor:pointer}.gold{background:#c9a227;color:#17120e;border:0;padding:11px 16px;border-radius:10px;cursor:pointer}.ghost{background:transparent;border:1px solid #baa98e;padding:10px 14px;border-radius:10px;cursor:pointer}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.input{width:100%;max-width:100%;padding:11px;border:1px solid #baa98e;border-radius:10px;background:#fffaf0;color:#30261e}.wish-layout{display:grid;grid-template-columns:minmax(300px,1.3fr) minmax(260px,.7fr);gap:16px}.wish{overflow-wrap:anywhere;font-family:Georgia;font-size:30px;line-height:1.5}.badges{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.badge{display:inline-block;font:12px system-ui;padding:5px 9px;border-radius:99px;background:#5f7a4e22;color:#405934}.badge.warn{background:#9b2e1e1c;color:#9b2e1e}.feed{max-height:70vh;overflow:auto}.feed-item{overflow-wrap:anywhere;padding:13px;border-bottom:1px solid #ddd0ba;cursor:pointer}.feed-item.on{background:#c9a22714}.shortcuts{font-size:12px;color:#786957}.login{min-height:100vh;display:grid;place-items:center;background:#17120e}.login .card{width:min(420px,calc(100% - 30px))}.big-number{font:42px Georgia;color:#9b2e1e}.led-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px}.blackout{border:3px solid #9b2e1e;text-align:center;padding:30px}pre{max-width:100%;overflow:auto}.crud-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}.crud-form label{display:grid;align-content:start;gap:7px;font-size:12px;font-weight:700;color:#6f604f}.crud-form textarea{min-height:82px;resize:vertical}.crud-form .check{display:flex;align-items:center;gap:8px;padding:10px 0}.crud-form .check input{width:18px;height:18px}.crud-submit{grid-column:1/-1;display:flex;gap:10px;align-items:center}.form-error{grid-column:1/-1;color:#9b2e1e;margin:0}.crud-list{display:grid;gap:12px}.crud-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.crud-row h2,.crud-tile h2{margin:10px 0 5px;font-size:23px}.crud-row p,.crud-tile p{margin:5px 0;color:#6f604f}.crud-actions{display:flex;gap:8px;flex:0 0 auto}.crud-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.crud-tile{display:flex;flex-direction:column;align-items:flex-start}.crud-tile .crud-actions{margin-top:auto;padding-top:16px}.crud-logo{width:100%;height:62px;object-fit:contain;object-position:left;margin-bottom:12px}@media(max-width:1050px){.crud-grid{grid-template-columns:1fr 1fr}}@media(max-width:800px){.shell{grid-template-columns:1fr}.side{height:auto;position:sticky;top:0;z-index:20;padding:10px 12px;box-shadow:0 4px 18px #17120e33}.side>p{display:none}.logo{padding:3px 8px 9px;font-size:18px}.nav{display:flex;gap:6px;overflow-x:auto;padding:0 2px 5px;scrollbar-width:thin}.nav a{flex:0 0 auto;white-space:nowrap;margin:0;padding:9px 11px}.cards,.wish-layout,.led-controls,.crud-form,.crud-grid{grid-template-columns:1fr}.main{padding:18px 14px}.top{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px}.wish{font-size:clamp(23px,7vw,30px)}.feed{max-height:46vh}.blackout{padding:22px 16px}.crud-row{align-items:flex-start;flex-direction:column}.crud-actions{width:100%}.crud-actions button{flex:1}}@media(max-width:420px){.main{padding:14px 10px}.card{padding:15px}.toolbar{gap:8px}.toolbar>*{max-width:100%}h1{font-size:28px}}
