/* ==========================================================
   觀點網 —— Cookie 通知条与设定面板（桌面、手机模板共用，脚本见 js/consent.js）
   颜色、字体沿用 main.css 的设计变量；≤760px 按手机排版
   ========================================================== */

/* ---------- 按钮 ---------- */
.gdc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;
         border:1px solid #ffffff;border-radius:var(--r,3px);background:none;color:var(--ink);
         font:500 14px/1 var(--sans);white-space:nowrap;cursor:pointer;transition:background-color .15s,color .15s}
/* 「接受全部」与「僅限必要 / 全部拒絕」同级，不用颜色诱导 */
.gdc-btn--solid{background: #632a00;color:var(--paper)}
.gdc-btn--solid:hover{background:var(--brand);border-color:var(--brand)}
.gdc-btn--line:hover{background:var(--sunk)}
.gdc-btn--text{border-color:transparent;padding:0 6px;text-decoration:underline;text-underline-offset:3px}
.gdc-btn--text:hover{color:var(--brand)}
.gdc-link{color:var(--brand);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}

/* ---------- 底部通知条 ---------- */
.gdc-banner{position:fixed;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;gap:32px;
            padding:20px max(20px,calc((100% - var(--max,1240px)) / 2));background:var(--card);
            border-top:3px solid var(--brand);box-shadow:0 -6px 24px oklch(19.4% .006 56 / .12);
            animation:gdc-up .28s cubic-bezier(.2,.7,.3,1)}
.gdc-banner__text{flex:1;min-width:0}
.gdc-banner__title{margin-bottom:4px;font:700 16px/1.4 var(--serif);color:var(--ink)}
.gdc-banner__text p{font-size:13px;line-height:1.75;color:var(--ink-2)}
.gdc-banner__actions{display:flex;align-items:center;gap:10px;flex:none}
@keyframes gdc-up{from{transform:translateY(100%)}to{transform:none}}

/* ---------- 设定面板 ---------- */
.gdc-dialog{position:fixed;inset:0;margin:auto;width:min(600px,calc(100% - 32px));max-height:min(760px,calc(100% - 48px));
            padding:0;border:0;border-radius:6px;background:var(--card);color:var(--ink);
            box-shadow:0 20px 60px oklch(12% .008 40 / .3);font-family:var(--sans)}
.gdc-dialog[open]{display:flex;flex-direction:column}
.gdc-dialog::backdrop{background:var(--overlay,oklch(12% .008 40 / .72))}
.gdc-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;
                  border-bottom:1px solid var(--line)}
.gdc-dialog__title{font:700 20px/1.3 var(--serif)}
.gdc-close{position:relative;width:32px;height:32px;border:0;border-radius:50%;background:none;cursor:pointer;flex:none}
.gdc-close:hover{background:var(--sunk)}
.gdc-close::before,.gdc-close::after{content:"";position:absolute;left:8px;top:15px;width:16px;height:1.5px;background:var(--ink)}
.gdc-close::before{transform:rotate(45deg)}
.gdc-close::after{transform:rotate(-45deg)}
.gdc-dialog__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 24px 6px}
.gdc-intro{font-size:13px;line-height:1.8;color:var(--ink-2)}
.gdc-note{margin-top:10px;padding:8px 12px;background:var(--sunk);border-left:3px solid var(--amber);
          font-size:12px;line-height:1.7;color:var(--ink-2)}
.gdc-dialog__foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--line);
                  background:var(--paper)}

/* 类别 */
.gdc-cat{padding:16px 0;border-top:1px solid var(--line)}
.gdc-cat:first-of-type{margin-top:16px}
.gdc-cat__row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gdc-cat__name{font:700 15px/1.4 var(--sans);cursor:pointer}
.gdc-cat__always{font-size:12px;font-weight:500;color:var(--brand)}
.gdc-cat__desc{margin-top:6px;font-size:13px;line-height:1.75;color:var(--ink-2)}
.gdc-cat__more{margin-top:8px}
.gdc-cat__more summary{display:inline-block;font-size:12px;color:var(--ink-2);cursor:pointer;
                       text-decoration:underline;text-underline-offset:2px}
.gdc-cat__more summary::-webkit-details-marker{display:none}
.gdc-cat__more summary:hover{color:var(--brand)}
.gdc-table{width:100%;margin-top:8px;border-collapse:collapse;font-size:12px;line-height:1.6}
.gdc-table th,.gdc-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.gdc-table th{background:var(--sunk);font-weight:500;color:var(--ink-2)}
.gdc-table__name{font-family:ui-monospace,Consolas,monospace;white-space:nowrap}
.gdc-table__exp{white-space:nowrap;color:var(--ink-2)}

/* 开关 */
.gdc-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:42px;height:24px;margin:0;
            border-radius:12px;background:var(--line-2);cursor:pointer;transition:background-color .15s}
.gdc-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
                   background:#fff;box-shadow:0 1px 2px oklch(12% .008 40 / .3);transition:transform .15s}
.gdc-switch:checked{background:var(--brand)}
.gdc-switch:checked::after{transform:translateX(18px)}

/* ---------- 手机 ---------- */
@media (max-width:760px){
  .gdc-banner{flex-direction:column;align-items:stretch;gap:14px;
              padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
  .gdc-banner__title{font-size:15px}
  .gdc-banner__text p{font-size:12.5px;line-height:1.7}
  .gdc-banner__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .gdc-banner__actions .gdc-btn--text{grid-column:1 / -1;grid-row:2;min-height:32px}

  /* 面板改为底部抽屉 */
  .gdc-dialog{inset:auto 0 0;width:100%;max-width:100%;max-height:88vh;border-radius:12px 12px 0 0}
  .gdc-dialog__head{padding:14px 16px}
  .gdc-dialog__title{font-size:18px}
  .gdc-dialog__body{padding:14px 16px 4px}
  .gdc-dialog__foot{display:grid;grid-template-columns:1fr 1fr;gap:8px;
                    padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .gdc-dialog__foot .gdc-btn--solid{grid-column:1 / -1}
  .gdc-table__name{white-space:normal;word-break:break-all}
}

@media (prefers-reduced-motion:reduce){
  .gdc-banner{animation:none}
  .gdc-switch,.gdc-switch::after,.gdc-btn{transition:none}
}
@media print{.gdc-banner,.gdc-dialog{display:none!important}}
