body.admin{min-height:100vh; background:var(--blush)}
.gate{min-height:100vh; display:grid; place-items:center; padding:20px}
.gate-card{width:min(100%,420px); text-align:center}
.gate-card .field, .gate-card .msg{text-align:left}
.gate-card .tagline{margin-bottom:18px}
.a-top{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:calc(12px + var(--safe-top)) 18px 12px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20}
.a-brand{display:flex; align-items:center; gap:8px; font-family:var(--display); font-style:italic; font-size:1.25rem}
.a-brand .bow{width:34px; height:28px}
.a-tag{font-family:var(--body); font-style:normal; font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; background:var(--petal); color:var(--pink-deep); padding:2px 10px; border-radius:99px}
.a-user{display:flex; align-items:center; gap:8px; font-size:.85rem; color:var(--ink-soft)}
#a-email{display:none}
@media(min-width:760px){#a-email{display:inline}}
.a-tabs{display:flex; gap:6px; padding:10px 14px; overflow-x:auto; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:58px; z-index:19}
.a-tabs button{flex:none; min-height:38px; padding:0 16px; border-radius:99px; border:1.5px solid transparent; background:transparent; font-weight:700; color:var(--ink-soft)}
.a-tabs button.on{background:var(--petal); color:var(--pink-deep)}
.a-tabs .dot{display:inline-block; width:8px; height:8px; border-radius:50%; background:#d92b52; margin-left:4px}
.a-main{max-width:1100px; margin:0 auto; padding:20px 16px calc(40px + var(--safe-bottom))}
.a-sec h2{font-family:var(--display); font-style:italic; font-size:1.6rem; margin:0 0 4px}
.a-sec h3{margin:26px 0 10px; font-size:1.05rem}
.muted{color:var(--ink-soft); font-size:.9rem}
.panel{background:#fff; border:1px solid var(--line); border-radius:22px; padding:18px; margin-bottom:16px; box-shadow:0 14px 36px -28px rgba(224,36,94,.4)}
.grid{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); margin:14px 0}
.kpi{background:#fff; border:1px solid var(--line); border-radius:20px; padding:14px 16px}
.kpi b{display:block; font-size:1.7rem; line-height:1.1; font-family:var(--display)}
.kpi span{font-size:.8rem; color:var(--ink-soft); font-weight:700}
.kpi small{display:block; margin-top:4px; color:var(--ink-soft); font-size:.76rem}
.kpi .meter{margin:8px 0 0}
.kpi.warn b{color:#d92b52}
.cols{display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.chart h4{margin:0 0 10px; font-size:.95rem}
.bars{display:flex; align-items:flex-end; gap:5px; height:120px}
.bar{flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; position:relative}
.bar i{display:block; width:100%; min-height:3px; background:linear-gradient(180deg,#ff7fae,var(--pink-deep)); border-radius:6px 6px 2px 2px}
.bar span{font-size:.62rem; color:var(--ink-soft); margin-top:4px}
.toolbar{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:12px 0}
.toolbar input[type=search], .a-sec input[type=text], .a-sec input[type=number], .a-sec select, .a-sec textarea{height:42px; padding:0 12px; border-radius:14px; border:1.5px solid var(--line); background:var(--blush); font:inherit; color:var(--ink)}
.a-sec textarea{height:auto; padding:10px 12px; width:100%; resize:vertical}
.a-sec input:focus,.a-sec select:focus,.a-sec textarea:focus{outline:none; border-color:var(--pink); background:#fff; box-shadow:0 0 0 4px rgba(255,79,139,.16)}
.btn.sm{width:auto; min-height:38px; padding:0 16px; font-size:.88rem}
.btn.danger{background:#ffe9ee; color:#a5153f}
.btn.danger:hover:not([disabled]){background:#ffd3dc}
.tbl-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:18px; background:#fff}
table{width:100%; border-collapse:collapse; font-size:.88rem}
th,td{padding:10px 12px; text-align:left; border-bottom:1px solid #fbe3ec; vertical-align:middle; white-space:nowrap}
th{font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); background:var(--blush)}
tr:last-child td{border-bottom:0}
td .acts{display:flex; gap:6px}
.tag{display:inline-block; padding:2px 9px; border-radius:99px; font-size:.74rem; font-weight:700; background:var(--petal); color:var(--pink-deep)}
.tag.ok{background:#e8f7ee; color:#1d6b3b}.tag.bad{background:#ffe9ee; color:#a5153f}.tag.mid{background:#fff6e0; color:#8a5a00}.tag.gray{background:#f1eaee; color:#6d5864}
.item{background:#fff; border:1px solid var(--line); border-radius:20px; padding:16px; margin-bottom:12px}
.item h4{margin:6px 0 4px; font-family:var(--display); font-style:italic; font-size:1.1rem}
.item p{margin:4px 0 10px}
.item .top{display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:.8rem; color:var(--ink-soft)}
.item .top .sp{flex:1}
.item .srcs a{margin-right:8px; font-size:.82rem}
.item .acts{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.item input[type=text]{width:100%; margin-bottom:8px; font-weight:700}
.item.done{opacity:.55}
.check{display:flex; align-items:center; gap:10px; padding:6px 0}
.check b.ok{color:#1d6b3b}.check b.no{color:#a5153f}
.form-grid{display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.form-grid label{display:block; font-weight:700; font-size:.85rem}
.form-grid label small{display:block; font-weight:400; color:var(--ink-soft); margin:2px 0 6px}
.form-grid input[type=number],.form-grid input[type=text],.form-grid select{width:100%}
.switch-row{display:flex; align-items:center; gap:10px; font-weight:700}
.switch-row input{width:20px; height:20px; accent-color:var(--pink)}
code{background:var(--petal); padding:1px 6px; border-radius:6px; font-size:.84rem; overflow-wrap:anywhere}
.kpi .meter i{background:linear-gradient(90deg,#ff7fae,var(--pink-deep))} .kpi.warn .meter i{background:#d92b52}
