:root{
    --bg:#f3f5f9;
    --card:#ffffff;
    --text:#1c2230;
    --muted:#667085;
    --line:#dde4ef;
    --primary:#2563eb;
    --primary-dark:#1d4ed8;
    --soft:#eef4ff;
    --danger:#b42318;
    --danger-bg:#fee4e2;
    --success:#027a48;
    --success-bg:#e8fff3;
    --shadow:0 14px 40px rgba(2, 6, 23, 0.07);
    --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font-family:Arial, Helvetica, sans-serif;
    background:var(--bg);
    color:var(--text);
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.page-shell{min-height:100vh;display:flex;flex-direction:column}
.container{width:min(1180px, calc(100% - 32px));margin:0 auto}
.site-header{
    background:#fff;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:0;
    z-index:20;
}
.header-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:18px 0;
}
.site-title{margin:0;font-size:1.55rem}
.site-subtitle{margin:4px 0 0;color:var(--muted);font-size:.95rem}
.main-nav{display:flex;flex-wrap:wrap;gap:10px}
.main-nav a{
    color:var(--text);
    background:#f8fafc;
    padding:10px 14px;
    border-radius:12px;
}
.main-nav a.active,.main-nav a:hover{
    background:var(--primary);
    color:#fff;
    text-decoration:none;
}
.main-content{flex:1;padding:28px 0 36px}
.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.panel,.hero-card,.stat-card,.auth-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}
.panel,.hero-card,.stat-card{padding:22px}
.auth-card{width:min(540px,100%);margin:24px auto;padding:24px}
.form-grid{display:grid;gap:16px}
.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
label span{
    display:block;
    font-weight:700;
    margin-bottom:6px;
}
input,select,textarea,button{font:inherit}
input[type=text],input[type=email],input[type=password],input[type=url],select,textarea,input[type=color]{
    width:100%;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px 14px;
}
input[type=file]{
    width:100%;
    border:1px dashed var(--line);
    border-radius:12px;
    background:#fff;
    padding:12px;
}
input[type=range]{width:100%}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:11px 15px;
    border:none;
    border-radius:12px;
    cursor:pointer;
    background:#eff6ff;
    color:var(--text);
}
.btn:hover{text-decoration:none;filter:brightness(.98)}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark)}
.btn-secondary{background:#edf2ff}
.btn-danger{background:var(--danger-bg);color:var(--danger)}
.btn-small{padding:8px 12px;font-size:.92rem}
.button-row,.filter-row,.inline-form,.action-stack,.card-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}
.flash{
    padding:14px 16px;
    border-radius:14px;
    margin-bottom:18px;
    font-weight:700;
}
.flash-success{background:var(--success-bg);color:var(--success)}
.flash-error{background:var(--danger-bg);color:var(--danger)}
.preview-box{
    min-height:420px;
    display:grid;
    place-items:center;
    border:1px dashed var(--line);
    border-radius:16px;
    background:#fbfdff;
    overflow:hidden;
    padding:18px;
}
.preview-box img{
    max-width:100%;
    height:auto;
    display:block;
}
.preview-empty{color:var(--muted)}
.hidden{display:none !important}
.muted{color:var(--muted)}
.small{font-size:.9rem}
.table-wrap{overflow:auto}
.data-table{
    width:100%;
    border-collapse:collapse;
}
.data-table th,.data-table td{
    padding:12px 10px;
    border-bottom:1px solid var(--line);
    text-align:left;
    vertical-align:top;
}
.history-thumb{
    width:72px;
    height:72px;
    border:1px solid var(--line);
    border-radius:10px;
    object-fit:contain;
    background:#fff;
    padding:4px;
}
.stat-number{font-size:2rem;font-weight:700;margin:0}
.stat-label{margin-top:4px;color:var(--muted)}
.type-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.type-badge{
    padding:7px 10px;
    border-radius:999px;
    background:var(--soft);
    font-size:.9rem;
}
.site-footer{
    background:#fff;
    border-top:1px solid var(--line);
}
.footer-inner{
    padding:18px 0;
    text-align:center;
    color:var(--muted);
}
.print-shell{
    max-width:760px;
    margin:0 auto;
    padding:20px;
    font-family:Arial, Helvetica, sans-serif;
}
.print-card{
    border:1px solid #d0d7e2;
    border-radius:18px;
    padding:24px;
}
.print-card img{
    display:block;
    max-width:360px;
    margin:18px auto;
}
@media (max-width: 920px){
    .grid-2,.grid-3,.option-grid{grid-template-columns:1fr}
    .header-row{flex-direction:column;align-items:flex-start}
    .main-nav{width:100%}
}


.preview-stack{
    position:relative;
    display:inline-block;
    max-width:100%;
}
.preview-stack img.preview-main{
    display:block;
    max-width:100%;
    height:auto;
}
.preview-logo-wrap{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    pointer-events:none;
}
.preview-logo-badge{
    background:#fff;
    border-radius:14px;
    box-shadow:0 6px 18px rgba(2, 6, 23, 0.14);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.preview-logo{
    display:block;
    object-fit:contain;
}


.meta-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 18px;
    margin-top:16px;
}
.meta-item{
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fafcff;
}
.preview-logo-badge{
    transition:width .15s ease, padding .15s ease;
}
.checkbox-row{
    display:flex;
    align-items:center;
    gap:10px;
}
.checkbox-row input{
    width:auto;
}
.stat-mini{
    color:var(--muted);
    font-size:.92rem;
    margin-top:6px;
}


.badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-radius:999px;
    background:#eef4ff;
    font-size:.85rem;
}
.star-btn{
    min-width:42px;
}
.note-preview{
    max-width:260px;
    white-space:pre-wrap;
}


.status-good{background:#e8fff3;color:#027a48}
.status-warn{background:#fff7e6;color:#9a6700}
.status-bad{background:#ffe8e8;color:#b42318}
.validation-box{
    margin-top:16px;
    padding:14px 16px;
    border-radius:14px;
    border:1px solid var(--line);
    background:#fafcff;
}
.validation-title{
    font-weight:700;
    margin-bottom:6px;
}


.form-row-2{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.card-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}
@media (max-width: 920px){
    .form-row-2,.card-grid{grid-template-columns:1fr}
}
