:root{
  --green-950:#073d34;
  --green-900:#084d42;
  --green-800:#0c6757;
  --green-700:#10806b;
  --green-600:#15967c;
  --mint:#edf3ef;
  --paper:#f7f8f5;
  --white:#fff;
  --text:#17251f;
  --muted:#718078;
  --gold:#dfbf71;
  --gold-2:#f1dda2;
  --line:#dce5df;
  --shadow:0 16px 40px rgba(27,54,44,.08);
  --danger:#c94f5f;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;background:var(--mint);color:var(--text)}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}

/* ===== front dashboard ===== */
.site-dashboard{min-height:100vh;background:#eef2ed}
.site-shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}
.front-sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0a584b,#07483e);padding:24px 18px;color:#fff;display:flex;flex-direction:column;box-shadow:8px 0 26px rgba(21,55,44,.08);z-index:30}
.side-brand{display:flex;align-items:center;gap:12px;padding:2px 8px 24px;border-bottom:1px solid rgba(255,255,255,.09)}
.side-brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--gold),#c8a85a);color:#26473f;display:grid;place-items:center;font-weight:950;font-size:20px;box-shadow:0 8px 18px rgba(0,0,0,.13)}
.side-brand b{display:block;font-size:17px;line-height:1.1}.side-brand small{display:block;font-size:9px;letter-spacing:.9px;color:rgba(255,255,255,.55);margin-top:5px;font-weight:800}
.side-nav{display:flex;flex-direction:column;gap:8px;padding-top:22px}
.side-link{height:54px;padding:0 15px;border-radius:15px;display:flex;align-items:center;gap:13px;color:rgba(255,255,255,.84);font-weight:850;font-size:15px;border:1px solid transparent;transition:.18s ease}
.side-link:hover{background:rgba(255,255,255,.06);color:#fff}
.side-link.active{background:linear-gradient(135deg,#1b8e76,#278f78);color:#fff;border-color:rgba(255,255,255,.08);box-shadow:0 10px 22px rgba(3,39,33,.18)}
.side-icon{width:22px;text-align:center;color:var(--gold-2);font-size:18px}
.side-note{margin-top:auto;padding:18px 13px;border-top:1px solid rgba(255,255,255,.08);font-weight:900;letter-spacing:1.2px;color:rgba(255,255,255,.78)}
.side-note span{display:block;margin-top:5px;font-size:9px;letter-spacing:.5px;color:rgba(255,255,255,.42);font-weight:700}

.front-main{padding:34px;min-width:0}
.page-intro-card{background:#fff;border:1px solid #dfe7e2;border-radius:28px;padding:30px 34px;box-shadow:var(--shadow);min-height:210px;position:relative;overflow:hidden}
.page-intro-card:after{content:"";position:absolute;right:-45px;top:-65px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(21,150,124,.10),rgba(21,150,124,0));pointer-events:none}
.intro-title-row{display:flex;align-items:center;gap:16px;position:relative;z-index:1}
.intro-icon{width:52px;height:52px;border-radius:15px;background:#e9f2ed;color:#0d775f;display:grid;place-items:center;font-size:24px;font-weight:900}
.intro-kicker{font-size:10px;letter-spacing:1.1px;font-weight:900;color:#8b9991;margin-bottom:4px}
.page-intro-card h1{margin:0;font-size:30px;letter-spacing:-.6px}
.page-intro-card>p{margin:18px 0 0;max-width:730px;color:var(--muted);line-height:1.8;font-size:14px}
.intro-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.intro-badges span{padding:9px 13px;border-radius:12px;background:#f6f8f5;border:1px solid #e5ebe7;font-size:12px;color:#6d7972;font-weight:750}
.intro-badges b{color:#0d775f;font-size:16px;margin-right:4px}

.content-panel{margin-top:22px;background:#fff;border:1px solid #dfe7e2;border-radius:26px;padding:24px;box-shadow:var(--shadow)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.section-head h2{margin:0;font-size:21px}.section-head p{margin:5px 0 0;color:#8a978f;font-size:12px}
.ghost-link{height:36px;padding:0 13px;border-radius:11px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:#607067;font-size:12px;font-weight:800;background:#fafbf9}
.catalog-filter{display:grid;grid-template-columns:1.35fr repeat(5,minmax(120px,1fr)) auto;gap:9px;padding:14px;background:#f4f7f4;border:1px solid #e1e9e3;border-radius:18px;margin-bottom:20px}
.catalog-field{height:42px;width:100%;border:1px solid #d8e2dc;border-radius:12px;background:#fff;color:#26372f;padding:0 12px;outline:none}.catalog-field:focus{border-color:#75b5a5;box-shadow:0 0 0 3px rgba(21,150,124,.08)}
.catalog-submit{height:42px;border:0;border-radius:12px;padding:0 18px;background:linear-gradient(135deg,var(--gold),#c9a859);color:#2c473f;font-weight:900;cursor:pointer}
.catalog-empty{padding:50px 18px;text-align:center;color:#89968f;border:1px dashed #d7e1da;border-radius:18px;background:#fafbf9}

.account-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.account-strip{border:1px solid #e0e7e2;border-radius:18px;background:#fff;padding:15px;min-width:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:9px;transition:.18s ease;box-shadow:0 6px 18px rgba(28,60,49,.04)}
.account-strip:hover{transform:translateY(-2px);border-color:#b9d7cc;box-shadow:0 12px 28px rgba(20,72,57,.10)}
.strip-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}
.strip-type{padding:4px 8px;border-radius:999px;background:#eaf4ef;color:#0d7b61;font-size:10px;font-weight:900}.strip-year{font-size:10px;color:#8d9892;font-weight:800}
.strip-uid{font-size:14px;font-weight:950;color:#17251f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strip-country{font-size:11px;color:#64736b;font-weight:800}.strip-info{font-size:11px;color:#8a968f;line-height:1.55;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.strip-right{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:7px;border-top:1px solid #edf1ee}
.strip-price{font-size:18px;font-weight:950;color:#0c715a}.strip-price small{font-size:9px;color:#99a59e;font-weight:800}.strip-arrow{width:28px;height:28px;border-radius:9px;background:#f1f5f2;color:#718078;display:grid;place-items:center;font-size:17px}
.pager{display:flex;justify-content:center;gap:7px;margin-top:24px}.page-link{min-width:36px;height:36px;border-radius:10px;border:1px solid #dce5df;background:#fff;display:grid;place-items:center;color:#65746c;font-weight:850}.page-link.active{background:#0d775f;color:#fff;border-color:#0d775f}

/* account modal */
body.modal-open{overflow:hidden}.account-modal,.signal-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;visibility:hidden;transition:.18s ease}.account-modal.show,.signal-modal.show{opacity:1;visibility:visible}.account-modal-backdrop,.signal-backdrop{position:absolute;inset:0;background:rgba(7,31,25,.48);backdrop-filter:blur(7px)}
.account-modal-card,.signal-card{position:relative;z-index:1;width:min(520px,100%);background:#fff;border-radius:26px;padding:28px;box-shadow:0 28px 70px rgba(14,45,35,.26);transform:translateY(8px) scale(.985);transition:.18s ease}.account-modal.show .account-modal-card,.signal-modal.show .signal-card{transform:none}
.modal-close{position:absolute;right:15px;top:15px;width:36px;height:36px;border:0;border-radius:11px;background:#f1f4f1;color:#708078;font-size:22px;cursor:pointer}.modal-kicker{font-size:10px;letter-spacing:1.2px;font-weight:900;color:#94a098}.modal-uid{font-size:28px;font-weight:950;margin-top:8px;padding-right:42px;word-break:break-all}.modal-price{font-size:34px;font-weight:950;color:#0d775f;margin-top:7px}.modal-price small{font-size:11px;color:#95a19a}.modal-country-box,.modal-mini-box{margin-top:14px;border:1px solid #e0e8e2;background:#f8faf8;border-radius:16px;padding:14px 16px}.modal-country-box span,.modal-mini-box span{display:block;color:#929e97;font-size:10px;margin-bottom:6px}.modal-country-box b,.modal-mini-box b{color:#20372d;font-size:15px;line-height:1.55}.modal-product-box b{font-weight:700}.modal-meta-row{display:grid;grid-template-columns:1fr}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.modal-profile-btn,.modal-select-btn{height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900}.modal-profile-btn{background:#f5f7f5;border:1px solid #dfe6e1;color:#405048}.modal-select-btn{border:0;background:linear-gradient(135deg,var(--gold),#c9a859);color:#28453c;cursor:pointer}.modal-select-btn.copied{background:#e5f3ec;color:#0d775f}.signal-card{text-align:center;max-width:410px}.signal-card h3{margin:8px 0 16px}.signal-qr-image{width:220px;max-width:100%;border-radius:18px;border:1px solid #e1e7e3;padding:8px;background:#fff}
.floating-contact{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;gap:9px}.float-btn{min-width:126px;border:1px solid #dce4df;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(23,58,46,.13);padding:10px 12px;display:flex;align-items:center;gap:9px;color:#284238;cursor:pointer}.float-icon{width:29px;height:29px;border-radius:9px;background:#0d775f;color:#fff;display:grid;place-items:center;font-weight:900}.float-label{font-size:12px;font-weight:900}

/* tutorials */
.tutorial-intro-card{min-height:180px}.tutorial-section-head{align-items:flex-end}.tutorial-search{display:flex;gap:8px;min-width:340px}.tutorial-search .catalog-field{flex:1}.tutorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tutorial-card{border:1px solid #e0e7e2;border-radius:18px;padding:18px;background:#fff;transition:.18s ease}.tutorial-card:hover{transform:translateY(-2px);border-color:#b6d4c9;box-shadow:0 12px 28px rgba(20,72,57,.08)}.tutorial-card-top{display:flex;align-items:center;justify-content:space-between}.tutorial-card-icon{width:36px;height:36px;border-radius:11px;background:#eaf4ef;color:#0d775f;display:grid;place-items:center;font-weight:900}.tutorial-card-date{font-size:10px;color:#9aa69f}.tutorial-card h3{margin:16px 0 8px;font-size:17px}.tutorial-card p{margin:0;color:#7d8b83;font-size:12px;line-height:1.7;min-height:41px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tutorial-read{display:inline-block;margin-top:16px;color:#0d775f;font-size:12px;font-weight:900}.back-link{display:inline-flex;margin-bottom:20px;color:#0d775f;font-size:12px;font-weight:850}.article-head{padding-bottom:22px;border-bottom:1px solid #e8ede9}.article-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eaf4ef;color:#0d775f;font-size:10px;font-weight:900}.article-head h2{font-size:30px;margin:13px 0 8px}.article-head p{margin:0;color:#77857d;line-height:1.8}.article-meta{font-size:10px;color:#9aa69f;margin-top:12px}.article-body{padding:26px 4px 10px;color:#34463d;line-height:2;font-size:14px;word-break:break-word}

/* ===== admin ===== */
.admin-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh;background:#eef2ed}.sidebar{background:linear-gradient(180deg,#0a584b,#07483e);padding:24px 16px;color:#fff;height:100vh;position:sticky;top:0}.brand{display:flex;align-items:center;gap:12px;color:#fff;font-weight:900}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--gold),#c9a859);color:#29463e;display:grid;place-items:center;font-weight:950}.brand small{display:block;font-size:9px;color:rgba(255,255,255,.52);margin-top:4px;letter-spacing:.8px}.admin-brand{padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.08)}.nav{display:flex;flex-direction:column;gap:7px;padding-top:20px}.nav a{height:44px;padding:0 12px;border-radius:12px;display:flex;align-items:center;color:rgba(255,255,255,.76);font-size:13px;font-weight:800}.nav a:hover,.nav a.active{background:rgba(255,255,255,.08);color:#fff}.admin-main{padding:28px;min-width:0}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.admin-head h1{margin:0;font-size:26px}.toolbar-note{color:#7d8b83;font-size:12px;margin-top:5px}.admin-user{font-size:12px;color:#76847c}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.tutorial-stats{grid-template-columns:repeat(3,1fr)}.stat-card{background:#fff;border:1px solid #dfe7e2;border-radius:18px;padding:17px;box-shadow:0 8px 24px rgba(27,54,44,.05)}.stat-card span{font-size:11px;color:#849188}.stat-card b{display:block;font-size:25px;color:#0d775f;margin-top:7px}.panel{background:#fff;border:1px solid #dfe7e2;border-radius:22px;padding:20px;box-shadow:0 10px 30px rgba(27,54,44,.05);margin-bottom:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-title h3{margin:0;font-size:18px}.panel-title p{margin:5px 0 0;font-size:11px;color:#849188}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.form-group label{display:block;font-size:11px;color:#66756d;font-weight:850;margin-bottom:6px}.field{height:42px;border:1px solid #dbe4de;border-radius:11px;background:#fff;padding:0 12px;color:#26372f;outline:none;width:100%}.field:focus,.textarea:focus{border-color:#82b7a8;box-shadow:0 0 0 3px rgba(21,150,124,.08)}.form-span-2{grid-column:span 2}.form-span-4{grid-column:span 4}.form-textarea{margin-top:12px}.textarea{width:100%;min-height:190px;border:1px solid #dbe4de;border-radius:13px;padding:12px;color:#26372f;outline:none;resize:vertical;line-height:1.7}.form-submit{display:flex;justify-content:flex-end;margin-top:12px}.btn{border:0;border-radius:11px;height:39px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:850;cursor:pointer}.btn-primary{background:#0d775f;color:#fff}.btn-soft{background:#f3f6f4;color:#4c5d54;border:1px solid #dce4df}.btn-danger{background:#fff0f2;color:#b94355;border:1px solid #ffd5dc}.btn-sm{height:32px;font-size:11px;padding:0 10px}.admin-filter-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr auto;gap:9px;margin-bottom:13px}.table-wrap{overflow:auto;border:1px solid #e1e7e3;border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:1050px}.table th,.table td{padding:11px 12px;border-bottom:1px solid #edf1ee;text-align:left;font-size:11px}.table th{background:#f7f9f7;color:#75837b}.table tr:last-child td{border-bottom:0}.table-link{color:#0d775f;font-weight:900}.table-info{max-width:250px}.table-empty{text-align:center!important;color:#8b9890!important;padding:30px!important}.ellipsis-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.status-pill,.type-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900}.status-available{background:#e5f4ec;color:#0d775f}.status-offline{background:#eff1ef;color:#78847d}.type-pill.select{background:#e8f2ee;color:#0d775f}.type-pill.real{background:#fff1d6;color:#8a651a}.tutorial-admin-grid{display:grid;grid-template-columns:2fr 1fr;gap:11px}.tutorial-summary-field{grid-column:1/-1}.tutorial-editor{min-height:360px}.tutorial-table{min-width:900px}.notice{padding:11px 13px;border-radius:12px;margin-bottom:14px;font-size:12px}.notice.success{background:#e6f5ed;color:#0d775f;border:1px solid #cce8dc}.notice.error{background:#fff0f2;color:#a93648;border:1px solid #ffd5dc}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px;background:#eef2ed}.login-card{width:min(430px,100%);background:#fff;border:1px solid #dfe7e2;border-radius:22px;padding:28px;box-shadow:var(--shadow)}.login-card h1{margin:18px 0 6px}.login-card p{margin:0 0 20px;color:#7c8981;font-size:12px;line-height:1.6}.login-card .field{margin-bottom:10px}.login-card .btn{width:100%}

@media(max-width:1200px){.account-list{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-filter{grid-template-columns:repeat(3,1fr)}.catalog-search{grid-column:span 2}.catalog-submit{grid-column:span 1}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-span-4{grid-column:span 2}}
@media(max-width:920px){.site-shell{grid-template-columns:1fr}.front-sidebar{position:sticky;height:auto;top:0;padding:10px 14px;flex-direction:row;align-items:center;gap:12px}.side-brand{padding:0 12px 0 0;border:0;border-right:1px solid rgba(255,255,255,.10)}.side-brand-mark{width:34px;height:34px;border-radius:10px}.side-brand b{font-size:13px}.side-brand small,.side-note{display:none}.side-nav{padding:0;flex-direction:row;gap:5px;overflow:auto}.side-link{height:40px;padding:0 11px;border-radius:11px;font-size:12px;white-space:nowrap}.side-icon{width:auto}.front-main{padding:18px}.account-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell{display:block}.sidebar{position:static;height:auto}.nav{flex-direction:row;overflow:auto}.nav a{white-space:nowrap}.admin-main{padding:18px}.stats{grid-template-columns:repeat(2,1fr)}.tutorial-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.front-sidebar{align-items:flex-start;flex-wrap:wrap}.side-brand{width:100%;border-right:0;border-bottom:1px solid rgba(255,255,255,.10);padding:0 0 9px}.side-nav{width:100%}.front-main{padding:12px}.page-intro-card{border-radius:20px;padding:20px;min-height:0}.intro-icon{width:44px;height:44px}.page-intro-card h1{font-size:24px}.content-panel{padding:14px;border-radius:20px}.section-head{align-items:flex-start}.catalog-filter{grid-template-columns:1fr}.catalog-search,.catalog-submit{grid-column:auto}.account-list,.tutorial-grid{grid-template-columns:1fr}.tutorial-search{min-width:0;width:100%}.tutorial-section-head{flex-direction:column;align-items:stretch}.floating-contact{right:10px;bottom:10px}.float-btn{min-width:0;padding:10px}.float-label{display:none}.modal-actions{grid-template-columns:1fr}.admin-head{align-items:flex-start;flex-direction:column}.stats,.tutorial-stats{grid-template-columns:1fr 1fr}.form-grid,.tutorial-admin-grid{grid-template-columns:1fr}.form-span-2,.form-span-4,.tutorial-summary-field{grid-column:auto}.admin-filter-grid{grid-template-columns:1fr}.panel{padding:14px}.article-head h2{font-size:24px}}
