/* ==========================================================================
   马桶安装费计算器 /tool/toilet-install-fee-calc
   独立设计「卫浴尺寸图」：石墨灰 + 薄荷绿，大圆角悬浮卡片，
   以 SVG 侧视剖面 + 标尺读数为主视觉，强调坑距 / 移位这类尺寸判断
   深浅主题由导航栏主题按钮（data-theme）驱动
   ========================================================================== */

.tic-page {
    --tic-graphite: #2b3440;
    --tic-graphite-d: #1c232c;
    --tic-graphite-l: #e9edf1;
    --tic-mint: #16a085;
    --tic-mint-d: #0f7c66;
    --tic-mint-l: #e4f5f1;
    --tic-mint-line: rgba(22, 160, 133, 0.26);
    --tic-amber: #d08412;
    --tic-amber-l: #fdf3e0;
    --tic-amber-line: rgba(208, 132, 18, 0.26);
    --tic-red: #c0392b;
    --tic-red-l: #fceceb;
    --tic-red-line: rgba(192, 57, 43, 0.24);
    --tic-bg: #f2f5f7;
    --tic-card: #ffffff;
    --tic-card-2: #f7fafb;
    --tic-ink: #222b35;
    --tic-sub: #4e5a68;
    --tic-mute: #8a95a1;
    --tic-line: #dde4ea;
    --tic-line-2: #eaf0f4;
    --tic-r: 20px;
    --tic-r-md: 14px;
    --tic-r-sm: 9px;
    --tic-shadow: 0 8px 24px rgba(34, 43, 53, 0.07);
    --tic-shadow-lg: 0 22px 48px rgba(26, 35, 45, 0.16);
    --tic-ring: 0 0 0 3px rgba(22, 160, 133, 0.2);
    --tic-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    --tic-num: "DIN Alternate", "Bahnschrift", ui-monospace, "SFMono-Regular", Consolas, monospace;
    padding-bottom: 10px;
    color: var(--tic-ink);
    font-family: var(--tic-font);
    line-height: 1.75;
}

[data-theme="dark"] .tic-page {
    --tic-graphite: #b9c6d2;
    --tic-graphite-d: #d4dee7;
    --tic-graphite-l: rgba(185, 198, 210, 0.12);
    --tic-mint: #3fc7a8;
    --tic-mint-d: #67d8bd;
    --tic-mint-l: rgba(63, 199, 168, 0.13);
    --tic-mint-line: rgba(63, 199, 168, 0.3);
    --tic-amber: #efb44f;
    --tic-amber-l: rgba(239, 180, 79, 0.13);
    --tic-amber-line: rgba(239, 180, 79, 0.3);
    --tic-red: #f0857e;
    --tic-red-l: rgba(240, 133, 126, 0.13);
    --tic-red-line: rgba(240, 133, 126, 0.3);
    --tic-bg: #10151a;
    --tic-card: #1a2027;
    --tic-card-2: #20272f;
    --tic-ink: #eaf0f5;
    --tic-sub: #b3c0cc;
    --tic-mute: #7f8c99;
    --tic-line: #2b343d;
    --tic-line-2: #242c34;
    --tic-shadow: 0 10px 28px rgba(0, 0, 0, 0.42);
    --tic-shadow-lg: 0 24px 52px rgba(0, 0, 0, 0.56);
    --tic-ring: 0 0 0 3px rgba(63, 199, 168, 0.25);
}

.tic-page *,
.tic-page *::before,
.tic-page *::after { box-sizing: border-box; }
.tic-page [hidden] { display: none !important; }
.tic-page h1, .tic-page h2, .tic-page h3, .tic-page h4 { font-family: var(--tic-font); }
.tic-page a { color: var(--tic-mint-d); text-decoration: none; }
.tic-page a:hover { color: var(--tic-mint); }

/* ============================ 面包屑 ============================ */
.tic-crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 0 0 14px;
    font-size: 13px;
    color: var(--tic-mute);
}
.tic-crumb a { color: var(--tic-sub); }
.tic-crumb a:hover { color: var(--tic-mint-d); }
.tic-crumb .sep { opacity: 0.45; }
.tic-crumb .cur { color: var(--tic-ink); font-weight: 700; }

/* ============================ 首屏 ============================ */
.tic-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 372px;
    gap: 32px;
    align-items: center;
    padding: 34px 34px;
    margin-bottom: 22px;
    border-radius: 26px;
    overflow: hidden;
    color: #eef4f4;
    background:
        radial-gradient(110% 130% at 88% 0%, rgba(22, 160, 133, 0.34) 0%, rgba(22, 160, 133, 0) 58%),
        linear-gradient(140deg, #1b222a 0%, #2b3440 55%, #35414f 100%);
    box-shadow: var(--tic-shadow-lg);
}
.tic-hero::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -90px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    border: 28px solid rgba(255, 255, 255, 0.05);
    pointer-events: none;
}
.tic-hero > * { position: relative; z-index: 1; }

.tic-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 13px;
    border-radius: 999px;
    background: rgba(22, 160, 133, 0.22);
    border: 1px solid rgba(63, 199, 168, 0.4);
    font-size: 12px;
    font-weight: 700;
    color: #9fe6d5;
}
.tic-hero h1 {
    margin: 15px 0 12px;
    font-size: clamp(25px, 3.3vw, 38px);
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #fff;
}
.tic-hero h1 b { font-weight: 800; color: #6fe0c4; }
.tic-lead {
    margin: 0 0 16px;
    max-width: 640px;
    font-size: 15px;
    line-height: 1.95;
    color: rgba(238, 244, 244, 0.9);
}
.tic-lead b { color: #fff; font-weight: 700; }
.tic-points {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.tic-points li {
    padding: 6px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 12.5px;
    color: rgba(238, 244, 244, 0.94);
}
.tic-points li b { color: #6fe0c4; font-weight: 700; }

.tic-quick {
    padding: 22px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.97);
    color: var(--tic-ink);
    box-shadow: 0 18px 40px rgba(10, 16, 22, 0.36);
}
[data-theme="dark"] .tic-quick { background: rgba(25, 32, 39, 0.96); }
.tic-quick-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 13px;
}
.tic-quick-head b { font-size: 16px; font-weight: 800; }
.tic-quick-head span { font-size: 12px; color: var(--tic-mute); }
.tic-quick-row { margin-bottom: 13px; }
.tic-quick-row > label {
    display: block;
    margin-bottom: 7px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--tic-sub);
}
.tic-hint { margin: 7px 0 0; font-size: 12px; line-height: 1.65; color: var(--tic-mute); }
.tic-quick-cta {
    width: 100%;
    margin-top: 4px;
    padding: 13px 16px;
    border-radius: 13px;
    font-size: 15px;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(135deg, var(--tic-mint-d), var(--tic-mint));
    box-shadow: 0 10px 22px rgba(22, 160, 133, 0.28);
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}
.tic-quick-cta:hover { filter: brightness(1.06); }
.tic-quick-cta:active { transform: translateY(1px); }
.tic-quick-cta:focus-visible { outline: none; box-shadow: var(--tic-ring), 0 10px 22px rgba(22, 160, 133, 0.28); }
.tic-quick-live {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px dashed var(--tic-line);
    font-size: 12.5px;
    color: var(--tic-sub);
}
.tic-quick-live b {
    font-family: var(--tic-num);
    font-size: 25px;
    font-weight: 800;
    color: var(--tic-mint-d);
}

/* ============================ 主体布局 ============================ */
.tic-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 22px;
    align-items: start;
}
.tic-col { min-width: 0; }
.tic-sticky { position: sticky; top: 16px; }

/* ============================ 卡片 ============================ */
.tic-card {
    background: var(--tic-card);
    border: 1px solid var(--tic-line);
    border-radius: var(--tic-r);
    box-shadow: var(--tic-shadow);
    overflow: hidden;
}
.tic-card + .tic-card { margin-top: 18px; }
.tic-card-head {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 16px 22px;
    border-bottom: 1px solid var(--tic-line-2);
}
.tic-card-head .no {
    flex: none;
    display: grid;
    place-items: center;
    min-width: 30px;
    height: 30px;
    padding: 0 10px;
    border-radius: 10px;
    background: var(--tic-mint-l);
    color: var(--tic-mint-d);
    font-family: var(--tic-num);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}
.tic-card-head h2 { margin: 0; font-size: 16.5px; font-weight: 800; }
.tic-card-head .tip { margin-left: auto; font-size: 12.5px; color: var(--tic-mute); }
.tic-card-body { padding: 20px 22px 22px; }

/* ============================ 表单 ============================ */
.tic-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 18px;
}
.tic-field { display: block; min-width: 0; }
.tic-field.is-full { grid-column: 1 / -1; }
.tic-label {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700;
    color: var(--tic-sub);
}
.tic-label small { font-size: 11.5px; font-weight: 500; color: var(--tic-mute); }
.tic-input, .tic-select {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--tic-line);
    border-radius: var(--tic-r-sm);
    background: var(--tic-card-2);
    color: var(--tic-ink);
    font-size: 15px;
    font-family: inherit;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.tic-input:focus, .tic-select:focus {
    border-color: var(--tic-mint);
    background: var(--tic-card);
    box-shadow: var(--tic-ring);
}
.tic-input.is-bad { border-color: var(--tic-red); }
.tic-select {
    appearance: none;
    cursor: pointer;
    padding-right: 36px;
    background-image: linear-gradient(45deg, transparent 50%, var(--tic-mute) 50%), linear-gradient(135deg, var(--tic-mute) 50%, transparent 50%);
    background-position: calc(100% - 18px) 19px, calc(100% - 13px) 19px;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}
.tic-unit-wrap { position: relative; display: flex; align-items: center; }
.tic-unit-wrap .tic-input { padding-right: 46px; }
.tic-unit {
    position: absolute;
    right: 13px;
    font-size: 13px;
    color: var(--tic-mute);
    pointer-events: none;
}
.tic-textarea {
    width: 100%;
    min-height: 82px;
    padding: 12px 14px;
    border: 1px solid var(--tic-line);
    border-radius: var(--tic-r-sm);
    background: var(--tic-card-2);
    color: var(--tic-ink);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.8;
    resize: vertical;
    outline: none;
}
.tic-textarea:focus { border-color: var(--tic-mint); background: var(--tic-card); box-shadow: var(--tic-ring); }
.tic-counter { margin: 7px 0 0; font-size: 12px; color: var(--tic-mute); text-align: right; }

.tic-seg {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 5px;
    padding: 5px;
    border-radius: 13px;
    background: var(--tic-card-2);
    border: 1px solid var(--tic-line);
}
.tic-seg button {
    padding: 10px 6px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--tic-sub);
    background: transparent;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    white-space: nowrap;
}
.tic-seg button:hover { color: var(--tic-ink); }
.tic-seg button.on {
    background: var(--tic-mint);
    color: #fff;
    box-shadow: 0 4px 12px rgba(22, 160, 133, 0.26);
}
[data-theme="dark"] .tic-seg button.on { background: var(--tic-mint); color: #07231d; }
.tic-seg button:focus-visible { outline: none; box-shadow: var(--tic-ring); }
.tic-seg small { display: block; font-size: 11px; font-weight: 500; opacity: 0.8; margin-top: 1px; }

.tic-switch { position: relative; display: inline-block; width: 46px; height: 26px; flex: none; }
.tic-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.tic-switch i {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: var(--tic-line);
    transition: background 0.18s ease;
}
.tic-switch i::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.22);
    transition: transform 0.18s ease;
}
.tic-switch input:checked + i { background: var(--tic-mint); }
.tic-switch input:checked + i::after { transform: translateX(20px); }
.tic-switch input:focus-visible + i { box-shadow: var(--tic-ring); }

.tic-err {
    display: none;
    margin: 15px 0 0;
    padding: 11px 15px;
    border-radius: var(--tic-r-sm);
    border: 1px solid var(--tic-red-line);
    background: var(--tic-red-l);
    color: var(--tic-red);
    font-size: 13.5px;
    font-weight: 600;
}
.tic-err.is-on { display: block; }

/* ============================ 尺寸示意图 ============================ */
.tic-drawing {
    padding: 18px;
    border-radius: var(--tic-r-md);
    background: linear-gradient(180deg, var(--tic-card-2), var(--tic-card));
    border: 1px solid var(--tic-line);
}
.tic-drawing svg { display: block; width: 100%; height: auto; }
.tic-dim-info {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}
.tic-dim-item {
    padding: 10px 12px;
    border-radius: var(--tic-r-sm);
    background: var(--tic-mint-l);
    border: 1px solid var(--tic-mint-line);
    text-align: center;
}
.tic-dim-item span { display: block; font-size: 11.5px; color: var(--tic-sub); }
.tic-dim-item b {
    display: block;
    margin-top: 2px;
    font-family: var(--tic-num);
    font-size: 17px;
    font-weight: 800;
    color: var(--tic-mint-d);
}
.tic-dim-item.is-warn { background: var(--tic-amber-l); border-color: var(--tic-amber-line); }
.tic-dim-item.is-warn b { color: var(--tic-amber); }

/* ============================ 三档区间 ============================ */
.tic-range { display: grid; gap: 9px; }
.tic-range-row {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px 16px;
    border-radius: var(--tic-r-md);
    background: var(--tic-card-2);
    border: 1px solid var(--tic-line);
}
.tic-range-row.is-mid { background: var(--tic-mint-l); border-color: var(--tic-mint-line); }
.tic-range-tag {
    display: grid;
    place-items: center;
    height: 30px;
    border-radius: 9px;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--tic-sub);
    background: var(--tic-graphite-l);
}
.tic-range-row.is-mid .tic-range-tag { color: #fff; background: var(--tic-mint); }
.tic-range-desc { font-size: 12.5px; line-height: 1.65; color: var(--tic-sub); }
.tic-range-desc b { display: block; font-size: 13.5px; color: var(--tic-ink); font-weight: 700; }
.tic-range-amt {
    font-family: var(--tic-num);
    font-size: 19px;
    font-weight: 800;
    color: var(--tic-ink);
    white-space: nowrap;
}
.tic-range-row.is-mid .tic-range-amt { color: var(--tic-mint-d); }

/* ============================ 明细 ============================ */
.tic-list { margin-top: 4px; }
.tic-list-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: baseline;
    padding: 11px 0;
    border-bottom: 1px solid var(--tic-line-2);
}
.tic-list-row:last-child { border-bottom: 0; }
.tic-list-name { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; }
.tic-list-name i { width: 9px; height: 9px; border-radius: 3px; flex: none; }
.tic-list-name em { font-style: normal; font-weight: 500; font-size: 11.5px; color: var(--tic-mute); }
.tic-list-amt { font-family: var(--tic-num); font-size: 14.5px; font-weight: 700; white-space: nowrap; }
.tic-list-row.is-total { border-top: 1px dashed var(--tic-line); border-bottom: 0; padding-top: 13px; }
.tic-list-row.is-total .tic-list-name { font-size: 14px; }
.tic-list-row.is-total .tic-list-amt { font-size: 20px; font-weight: 800; color: var(--tic-mint-d); }

/* ============================ 注意事项 ============================ */
.tic-notes { margin: 0; padding: 0; list-style: none; }
.tic-notes li {
    position: relative;
    padding: 10px 0 10px 26px;
    border-bottom: 1px dashed var(--tic-line);
    font-size: 13px;
    line-height: 1.8;
    color: var(--tic-sub);
}
.tic-notes li:last-child { border-bottom: 0; }
.tic-notes li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 17px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tic-mint);
}
.tic-notes li.is-warn::before { background: var(--tic-amber); }
.tic-notes li b { color: var(--tic-ink); font-weight: 700; }

/* ============================ 批量 ============================ */
.tic-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tic-table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 640px; }
.tic-table th, .tic-table td { padding: 10px 8px; text-align: left; border-bottom: 1px solid var(--tic-line-2); }
.tic-table th { font-size: 12px; font-weight: 700; color: var(--tic-mute); white-space: nowrap; }
.tic-table tfoot th { border-bottom: 0; border-top: 1px solid var(--tic-line); color: var(--tic-sub); }
.tic-table input, .tic-table select {
    width: 100%;
    padding: 7px 10px;
    border: 1px solid var(--tic-line);
    border-radius: 8px;
    background: var(--tic-card-2);
    color: var(--tic-ink);
    font-family: inherit;
    font-size: 13px;
    outline: none;
}
.tic-table input:focus, .tic-table select:focus { border-color: var(--tic-mint); box-shadow: var(--tic-ring); }
.tic-table input[type="text"] { min-width: 96px; }
.tic-table input[type="number"] { width: 78px; font-family: var(--tic-num); }
.tic-table select { min-width: 92px; }
.tic-table .num { text-align: right; font-family: var(--tic-num); font-weight: 700; white-space: nowrap; }
.tic-table tr.is-bad input, .tic-table tr.is-bad select { border-color: var(--tic-red); }
.tic-table .tic-del {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    color: var(--tic-mute);
    background: var(--tic-card-2);
    border: 1px solid var(--tic-line);
    font-size: 13px;
    line-height: 1;
}
.tic-table .tic-del:hover { color: var(--tic-red); border-color: var(--tic-red); }
.tic-row-err { display: none; font-size: 11.5px; color: var(--tic-red); }
.tic-table tr.is-bad .tic-row-err { display: block; }

/* ============================ 按钮 ============================ */
.tic-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid var(--tic-line-2);
}
.tic-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 17px;
    border-radius: 11px;
    border: 1px solid var(--tic-line);
    background: var(--tic-card-2);
    color: var(--tic-sub);
    font-size: 13.5px;
    font-weight: 700;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.tic-btn:hover { border-color: var(--tic-mint-line); color: var(--tic-mint-d); background: var(--tic-mint-l); }
.tic-btn:focus-visible { outline: none; box-shadow: var(--tic-ring); }
.tic-btn.is-primary {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--tic-mint-d), var(--tic-mint));
    box-shadow: 0 8px 18px rgba(22, 160, 133, 0.26);
}
.tic-btn.is-primary:hover { color: #fff; filter: brightness(1.06); }
.tic-btn.is-dark { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--tic-graphite-d), var(--tic-graphite)); }

/* ============================ 示例 ============================ */
.tic-scenes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.tic-scene {
    padding: 14px 15px;
    border: 1px solid var(--tic-line);
    border-radius: var(--tic-r-md);
    background: var(--tic-card-2);
    text-align: left;
    transition: border-color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
}
.tic-scene:hover { border-color: var(--tic-mint-line); transform: translateY(-2px); box-shadow: var(--tic-shadow); }
.tic-scene:focus-visible { outline: none; box-shadow: var(--tic-ring); }
.tic-scene b { display: block; font-size: 13.5px; font-weight: 800; margin-bottom: 4px; }
.tic-scene span { display: block; font-size: 12px; line-height: 1.72; color: var(--tic-mute); }

/* ============================ 文本 / FAQ ============================ */
.tic-prose ol, .tic-prose ul { margin: 0; padding-left: 21px; }
.tic-prose li { margin-bottom: 9px; font-size: 14px; line-height: 1.92; color: var(--tic-sub); }
.tic-prose li:last-child { margin-bottom: 0; }
.tic-prose b { color: var(--tic-ink); font-weight: 700; }
.tic-faq details {
    border: 1px solid var(--tic-line);
    border-radius: var(--tic-r-md);
    padding: 0 16px;
    margin-bottom: 9px;
    background: var(--tic-card-2);
}
.tic-faq summary {
    padding: 14px 0;
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    color: var(--tic-ink);
}
.tic-faq summary::-webkit-details-marker { display: none; }
.tic-faq summary::after { content: "＋"; float: right; color: var(--tic-mint-d); font-weight: 700; }
.tic-faq details[open] summary::after { content: "－"; }
.tic-faq summary:focus-visible { outline: none; color: var(--tic-mint-d); }
.tic-faq .a { padding: 0 0 15px; font-size: 13.5px; line-height: 1.95; color: var(--tic-sub); }
.tic-faq .a b { color: var(--tic-ink); }

.tic-rel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tic-rel a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 15px;
    border: 1px solid var(--tic-line);
    border-radius: var(--tic-r-md);
    background: var(--tic-card-2);
    color: var(--tic-sub);
    font-size: 13.5px;
    font-weight: 600;
    transition: border-color 0.15s ease, color 0.15s ease;
}
.tic-rel a:hover { border-color: var(--tic-mint-line); color: var(--tic-mint-d); }
.tic-rel .ico { font-size: 17px; }

.tic-foot {
    margin: 22px 0 8px;
    padding: 16px 19px;
    border-radius: var(--tic-r-md);
    border: 1px dashed var(--tic-amber-line);
    background: var(--tic-amber-l);
    font-size: 12.5px;
    line-height: 1.9;
    color: var(--tic-amber);
}
.tic-foot b { color: var(--tic-amber); }

/* ============================ Toast ============================ */
.tic-toast {
    position: fixed;
    left: 50%;
    bottom: 34px;
    transform: translate(-50%, 14px);
    z-index: 99999;
    max-width: 88vw;
    padding: 11px 20px;
    border-radius: 13px;
    background: rgba(34, 43, 53, 0.95);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.26);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
.tic-toast.show { opacity: 1; transform: translate(-50%, 0); }
.tic-toast.ok { background: rgba(17, 108, 90, 0.96); }
.tic-toast.err { background: rgba(150, 52, 38, 0.96); }

/* ============================ 打印区 ============================ */
.tic-printzone { display: none; }

@media print {
    @page { size: A4 portrait; margin: 12mm; }
    .nav-header, .footer, .tic-toast { display: none !important; }
    body > *:not(.tic-page) { display: none !important; }
    .tic-page > .container > *:not(#ticPrintZone) { display: none !important; }
    body { background: #fff !important; }
    .tic-page { padding: 0; }
    .tic-printzone {
        display: block !important;
        padding: 0;
        color: #000;
        font-family: var(--tic-font);
    }
    .tic-pz-head { border-bottom: 2px solid #000; padding-bottom: 8px; margin-bottom: 12px; }
    .tic-pz-head h2 { margin: 0 0 4px; font-size: 19px; }
    .tic-pz-head .meta { font-size: 12px; color: #444; }
    .tic-pz-title { margin: 14px 0 6px; font-size: 14px; font-weight: 800; }
    .tic-pz-table { width: 100%; border-collapse: collapse; font-size: 12px; }
    .tic-pz-table th, .tic-pz-table td { border: 1px solid #999; padding: 5px 7px; text-align: left; }
    .tic-pz-table th { background: #f0f0f0; }
    .tic-pz-table .num { text-align: right; font-family: var(--tic-num); }
    .tic-pz-list { margin: 6px 0 0; padding-left: 20px; font-size: 12px; line-height: 1.85; }
    .tic-pz-sign { display: flex; gap: 26px; margin-top: 22px; font-size: 12px; }
    .tic-pz-note { margin-top: 16px; font-size: 11px; color: #444; line-height: 1.8; }
}

/* ============================ 响应式 ============================ */
@media (max-width: 1080px) {
    .tic-hero { grid-template-columns: minmax(0, 1fr); }
    .tic-main { grid-template-columns: minmax(0, 1fr); }
    .tic-sticky { position: static; }
}
@media (max-width: 760px) {
    .tic-scenes { grid-template-columns: minmax(0, 1fr); }
    .tic-rel { grid-template-columns: minmax(0, 1fr); }
    .tic-fields { grid-template-columns: minmax(0, 1fr); }
    .tic-field.is-full { grid-column: span 1; }
    .tic-hero { padding: 24px 20px; }
    .tic-dim-info { grid-template-columns: minmax(0, 1fr); }
    .tic-range-row { grid-template-columns: 56px minmax(0, 1fr); }
    .tic-range-amt { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
    .tic-page *, .tic-page *::before, .tic-page *::after {
        transition: none !important;
        animation: none !important;
    }
}
