:root{--paper: #f7f5f2;--ink: #111111;--muted: #8b8781;--line: #e2ded7;--sans: "Helvetica Neue", Helvetica, "Segoe UI", Inter, Arial, sans-serif;--serif: Georgia, "Times New Roman", Times, serif;--track: .15em;--ok: #3f7d53;--warn: #b4552f;--admin-max: 1480px}body{background:#efedea;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;color:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login .panel{width:100%;max-width:340px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:34px 28px 28px}.login h1{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.02em}.login p{margin-top:8px;font-size:12.5px;color:var(--muted)}.bar{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}.bar .in{max-width:var(--admin-max);margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.bar .who{font-family:var(--serif);font-size:16px;letter-spacing:.1em;text-transform:uppercase}.bar .tag{font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 11px}.spacer{flex:1}.page{max-width:var(--admin-max);margin:0 auto;padding:26px 22px 120px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:24px 22px}.panel+.panel{margin-top:18px}.panel>h2{font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:-.005em}.panel>.hint{margin-top:5px;margin-bottom:18px;font-size:12px;color:var(--muted)}.field{display:block;margin-bottom:15px}.field>span{display:block;font-size:10px;font-weight:600;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted);margin-bottom:6px}input[type=text],input[type=url],input[type=password],textarea{width:100%;font:inherit;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:3px;padding:9px 11px;transition:border-color .2s ease}textarea{resize:vertical;min-height:74px;line-height:1.55}input:focus,textarea:focus{outline:none;border-color:var(--ink)}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:var(--paper);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .2s ease,background .2s ease}.btn:hover{opacity:.86}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{border-color:var(--ink);opacity:1}.btn.sm{height:30px;padding:0 10px;font-size:10px;letter-spacing:.08em}.btn.danger{background:transparent;border-color:var(--line);color:var(--warn)}.btn.danger:hover{border-color:var(--warn)}.rows{border-top:1px solid var(--line);margin-top:6px}.srow{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.srow.over{background:#fff}.shead{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;align-items:center;gap:8px}.shead .f-name{min-width:0}.cover{height:30px;padding:0 10px;border:1px solid transparent;background:transparent;font-size:12px;letter-spacing:.04em;color:var(--muted);cursor:pointer}.cover:hover,.cover.on{color:var(--ink)}.cover.on{border-bottom-color:var(--ink)}.smeta{display:grid;grid-template-columns:minmax(0,1fr) minmax(148px,36%);gap:8px;margin-left:34px}.srow>.err{margin:0 0 0 34px}.codebox{display:flex;align-items:center;min-width:0;background:#fff;border:1px solid var(--line);border-radius:3px}.codebox:focus-within{border-color:var(--ink)}.codebox.bad{border-color:var(--warn)}.codebox .prefix{flex:none;padding-left:11px;color:var(--muted);font-size:14px}.codebox input{border:0;background:transparent;border-radius:0;padding-left:2px}.codebox input:focus{border-color:transparent}.codebox .copy{flex:none;align-self:stretch;border:0;border-left:1px solid var(--line);background:transparent;padding:0 14px;font-size:12px;color:var(--muted);cursor:pointer}.codebox .copy:hover:not(:disabled){color:var(--ink)}.codebox .copy:disabled{opacity:.4;cursor:default}.srow input{min-width:0;text-overflow:ellipsis}.srow .idx{font-family:var(--serif);font-size:12px;color:var(--muted);cursor:grab}.srow .ops{display:flex;gap:5px}.iconbtn{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--muted);cursor:pointer}.iconbtn:hover:not(:disabled){color:var(--ink);border-color:var(--ink)}.iconbtn:disabled{opacity:.35;cursor:default}.iconbtn.on{color:var(--ink);border-color:var(--ink);background:#fff}.srow.open{border-bottom-color:transparent}.imgedit{grid-column:1 / -1;display:flex;gap:16px;align-items:flex-start;padding:12px 12px 16px;margin-top:2px;background:#fff;border:1px solid var(--line);border-radius:3px}.imgedit .thumb{flex:none;width:160px;aspect-ratio:4 / 3;display:grid;place-items:center;background:#efece7;overflow:hidden}.imgedit .thumb img{width:100%;height:100%;object-fit:cover;display:block}.imgedit .thumb span{font-size:10.5px;color:var(--muted)}.imgedit .side{flex:1;min-width:0}.crop-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#1111118c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.crop-box{width:100%;max-width:620px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:22px 22px 18px}.crop-head h2{font-family:var(--serif);font-weight:400;font-size:18px}.crop-head p{margin-top:5px;font-size:12px;color:var(--muted);line-height:1.6}.crop-stage{position:relative;width:100%;aspect-ratio:4 / 3;max-height:calc(100vh - 250px);margin:16px 0 0;background:#1a1a1a;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.crop-stage>cropper-canvas,.crop-stage cropper-canvas{display:block;width:100%;height:100%}.crop-stage cropper-image,.crop-stage cropper-selection,.crop-stage cropper-shade,.crop-stage cropper-handle,.crop-stage cropper-grid,.crop-stage cropper-crosshair{position:absolute}.crop-stage cropper-handle[action$=-resize]{width:14px;height:14px}.crop-stage cropper-selection{outline:1.5px solid rgba(255,255,255,.95);outline-offset:0}.crop-stage cropper-handle[action$=-resize]{background:#fff;border:1.5px solid #111;border-radius:2px}.crop-info{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.crop-size{min-width:44px;text-align:right}.crop-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.crop-box .err{margin-top:10px;font-size:12px;color:var(--warn)}.crop-zoom{display:flex;align-items:center;gap:9px;flex:1;min-width:190px}.crop-zoom>span{font-size:10px;font-weight:600;letter-spacing:var(--track);text-transform:uppercase;color:var(--muted)}.crop-zoom input[type=range]{flex:1;min-width:100px;accent-color:var(--ink)}.cbtn{height:36px;padding:0 16px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .2s ease,opacity .2s ease}.cbtn:hover:not(:disabled){border-color:var(--ink)}.cbtn:disabled{opacity:.4;cursor:default}.cbtn.ghost{background:transparent}.cbtn.solid{background:var(--ink);border-color:var(--ink);color:var(--paper)}.cbtn.solid:hover:not(:disabled){opacity:.86}.backup-actions{display:flex;gap:10px;flex-wrap:wrap}.btn.disabled{opacity:.45;pointer-events:none}.runtime{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px 12px;font-size:11.5px}.runtime dt{color:var(--muted)}.runtime dd{margin:0;color:var(--ink);word-break:break-all}.note.ok{color:var(--ok)}.note.err{color:var(--warn)}.check{display:flex;align-items:center;gap:9px;font-size:13px;margin-bottom:15px}.check input{width:16px;height:16px;accent-color:var(--ink)}.savebar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#f7f5f2f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line)}.savebar .in{max-width:var(--admin-max);margin:0 auto;padding:12px 22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.savebar .msg{font-size:12px;color:var(--muted)}.savebar .msg.ok{color:var(--ok)}.savebar .msg.err{color:var(--warn)}.note{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.6}.note code{font-size:11px;background:#1111110d;padding:1px 4px;border-radius:2px}.err{color:var(--warn);font-size:12px;margin-top:10px}@media(max-width:820px){.layout{grid-template-columns:minmax(0,1fr)}.smeta{margin-left:0;grid-template-columns:minmax(0,1fr)}.srow>.err{margin-left:0}.imgedit{flex-direction:column}.imgedit .thumb{width:100%}.two{grid-template-columns:1fr}}@media(max-width:620px){.bar .in{padding:10px 14px;gap:10px}.bar .who{font-size:14px}.bar .tag{display:none}.bar .btn{height:32px;padding:0 12px}.page{padding:16px 14px 108px}.panel{padding:18px 14px}.panel>.hint{display:none}.shead{grid-template-columns:22px minmax(0,1fr) auto}.shead .cover{grid-column:2;justify-self:start;height:36px;padding:0 4px}.shead .ops{grid-row:1;grid-column:3;gap:8px}.srow input,.field input,.field textarea,input[type=text],input[type=password],textarea{font-size:16px;padding:8px 10px}.srow .iconbtn{width:40px;height:40px;flex:none}.smeta{grid-template-columns:minmax(0,1fr)}.codebox{min-height:40px}.crop-mask{padding:12px;align-items:flex-start}.crop-box{padding:18px 16px 14px}.crop-info{width:100%}.crop-actions .cbtn{flex:1;height:40px}.savebar .in{padding:10px 14px;gap:10px;flex-wrap:nowrap}.savebar .btn{height:40px;flex:none;padding:0 18px}.savebar .msg:last-of-type,.savebar .spacer{display:none}.savebar .msg{flex:1;min-width:0}.runtime{grid-template-columns:minmax(0,1fr);gap:2px}.runtime dd{margin-bottom:8px}.backup-actions{gap:8px}.backup-actions .btn{flex:1;min-width:120px}}:root{--paper: #f7f5f2;--ink: #111111;--muted: #8b8781;--line: #e2ded7;--sans: "Helvetica Neue", Helvetica, "Segoe UI", Inter, Arial, sans-serif;--serif: Georgia, "Times New Roman", Times, serif;--track: .15em;--wa: #25d366;--wa-dark: #20bd5c}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:1.5px solid var(--ink);outline-offset:2px}.wrap{max-width:880px;margin:0 auto;padding:0 24px}header{padding:56px 0 34px}.brand{font-family:var(--serif);font-size:20px;letter-spacing:.14em;text-transform:uppercase}h1{font-family:var(--serif);font-weight:400;font-size:clamp(26px,4.4vw,38px);line-height:1.15;letter-spacing:-.015em;margin:26px 0 12px}header p{font-size:14.5px;color:var(--muted);max-width:52ch}.list{border-top:1px solid var(--line)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;row-gap:40px;padding:30px 0 14px}.card{display:block;min-width:0}.card .frame{display:block;position:relative;overflow:hidden;background:#efece7;aspect-ratio:4 / 3}.card .frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.3,1)}.card:hover .frame img{transform:scale(1.03)}.card .meta{display:block;padding-top:12px}.card .title{display:flex;align-items:baseline;gap:10px}.card .title .no{flex:none;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums}.card .name{flex:0 1 auto;min-width:0;font-family:var(--serif);font-size:19px;letter-spacing:-.008em;line-height:1.25;border-bottom:1px solid transparent;transition:border-color .3s ease}.card:hover .name{border-bottom-color:var(--ink)}.share{flex:none;margin-left:auto;padding:0 0 1px;border-bottom:1px solid transparent;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;line-height:1;color:var(--muted);white-space:nowrap;transition:color .3s ease,border-color .3s ease}.share:hover,.share.copied{color:var(--ink)}.share:hover{border-bottom-color:var(--ink)}.list.has-cards .row:first-of-type{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:58px minmax(0,max-content) minmax(24px,1fr) auto;align-items:baseline;gap:22px;padding:21px 12px;border-bottom:1px solid var(--line);transition:background .25s ease,padding .25s ease}.row:hover{background:#fff;padding-left:20px;padding-right:6px}.row .no{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums}.row .name{font-family:var(--serif);font-size:21px;letter-spacing:-.008em;border-bottom:1px solid transparent;transition:border-color .3s ease}.row:hover .name{border-bottom-color:var(--ink)}.row .share{margin-left:0;grid-column:4}.empty{padding:40px 12px;color:var(--muted);font-size:14px}footer{padding:40px 0 56px;font-size:11.5px;color:var(--muted);letter-spacing:.03em;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.has-fab footer{padding-bottom:128px}.fab{position:fixed;right:24px;bottom:28px;z-index:40;display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 16px 0 14px;border-radius:999px;background:var(--wa);color:#fff;font-size:14px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 10px 28px #25d36661;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease,background .25s ease,box-shadow .25s ease}.fab.is-in{opacity:1;transform:none}.fab:hover{transform:translateY(-2px);background:var(--wa-dark)}.fab svg{flex:none}@media(min-width:561px)and (max-width:1353px){.fab{width:56px;height:56px;padding:0;gap:0;justify-content:center}.fab span{display:none}.fab svg{width:34px;height:34px}}.mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#1111116b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .2s ease}.sheet{position:relative;width:100%;max-width:340px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:30px 28px 26px;text-align:center;animation:pop .24s cubic-bezier(.2,.8,.3,1)}.sheet h2{font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:-.01em}.sheet .sub{margin-top:8px;font-size:12.5px;color:var(--muted)}.sheet .wamark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 18px;border-radius:50%;background:var(--wa);color:#fff}.sheet .go{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;width:100%;height:46px;border-radius:3px;background:var(--wa);color:#fff;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.sheet .go:hover{background:var(--wa-dark)}.sheet .close{position:absolute;top:10px;right:12px;width:34px;height:34px;display:grid;place-items:center;color:var(--muted);border-radius:50%}.sheet .close:hover{color:var(--ink);background:#1111110d}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(max-width:900px){.grid{grid-template-columns:minmax(0,1fr);row-gap:34px}.card .name{font-size:17.5px}}@media(max-width:560px){header{padding:40px 0 26px}.wrap{padding:0 18px}.grid{padding:22px 0 10px}.row{grid-template-columns:34px minmax(0,max-content) minmax(12px,1fr) auto;gap:14px;padding:17px 8px}.row:hover{padding-left:8px;padding-right:8px}.row .name{font-size:17.5px;grid-column:2;min-width:0;max-width:100%}.row .no{grid-row:1;align-self:center}.row .share{grid-row:1;grid-column:4;align-self:center}footer{padding:32px 0 44px;flex-direction:column;gap:6px}.fab{right:24px;bottom:24px;width:56px;height:56px;padding:0;gap:0;justify-content:center}.fab svg{width:34px;height:34px}.fab span{display:none}.fab.is-in{transition-delay:.35s}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
