/* ZWINA 6.1.1: internal cards and tool windows, after app.css. */
:root{--tu-page:#0c111b;--tu-panel:#141d2b;--tu-raised:#1c293b;--tu-control:#0f1825;--tu-text:#edf3fc;--tu-muted:#b0bfd3;--tu-line:#61758f;--tu-ink:#76dfe7;--tu-tint:#17343f;--tu-primary:#237888;--tu-on-primary:#fff}
html[data-theme="light"]{--tu-page:#f1f5f9;--tu-panel:#fff;--tu-raised:#eaf0f7;--tu-control:#fff;--tu-text:#17273c;--tu-muted:#465a73;--tu-line:#8191a6;--tu-ink:#086674;--tu-tint:#e3f1f2;--tu-primary:#126879}
#cardGrid .internal-card{min-height:212px;padding:22px;border:1px solid var(--tu-line);border-radius:18px;background:var(--tu-panel);box-shadow:0 4px 14px rgba(8,21,38,.04);transition:border-color .15s,transform .15s,box-shadow .15s}
#cardGrid .internal-card::after{display:none}#cardGrid .internal-card::before{background:var(--tu-tint);opacity:0}
#cardGrid .internal-card:hover{border-color:var(--tu-ink);box-shadow:0 9px 24px rgba(8,21,38,.12);transform:translateY(-2px)}#cardGrid .internal-card:hover::before{opacity:.35}
#cardGrid .internal-card:focus-visible{outline:3px solid var(--tu-ink);outline-offset:3px}
#cardGrid .internal-card .app-icon{width:44px;height:44px;border-radius:13px;border:1px solid var(--tu-line);color:var(--tu-ink);background:var(--tu-tint);font-size:19px;transform:none}
#cardGrid .internal-card h3{color:var(--tu-text);font-size:16px;line-height:1.5;margin:18px 0 7px;overflow-wrap:anywhere}
#cardGrid .internal-card p{color:var(--tu-muted);font-size:13px;line-height:1.7;-webkit-line-clamp:3}
#cardGrid .internal-card .card-foot{margin-top:auto;padding-top:20px;gap:12px;align-items:end}
#cardGrid .internal-card .card-cat{color:var(--tu-muted);font-size:11px;line-height:1.5;white-space:normal}
#cardGrid .internal-card .card-kind.local{background:var(--tu-tint);border:1px solid var(--tu-line);color:var(--tu-ink);font-size:10px;padding:4px 8px;white-space:nowrap}
#cardGrid .internal-card :is(.card-arrow,.card-favorite){color:var(--tu-muted)}
#cardGrid .internal-card .card-favorite{opacity:1;width:32px;height:32px;border-radius:9px;background:transparent;border-color:transparent}
#cardGrid .internal-card .card-favorite:hover,#cardGrid .internal-card .card-favorite.active{color:var(--tu-ink);border-color:var(--tu-line);background:var(--tu-tint)}
#cardGrid .internal-card .card-favorite:focus-visible{outline:2px solid var(--tu-ink);outline-offset:2px}#cardGrid .internal-card .card-arrow{font-size:13px;transform:none}
:is(#toolModal,#legacyToolModal){padding:24px;overscroll-behavior:contain}
:is(#toolModal,#legacyToolModal) .modal-panel{background:var(--tu-panel);border:1px solid var(--tu-line);color:var(--tu-text);border-radius:20px;backdrop-filter:none;-webkit-backdrop-filter:none;max-height:calc(100dvh - 48px)}
:is(#toolModal,#legacyToolModal) .modal-panel>header{background:var(--tu-panel);border-color:var(--tu-line);padding:20px 24px;gap:16px;backdrop-filter:none}
:is(#toolModal,#legacyToolModal) h3{color:var(--tu-text);font-size:23px;line-height:1.4;overflow-wrap:anywhere}
:is(#toolModal,#legacyToolModal) .eyebrow{color:var(--tu-ink)}
:is(#toolModal,#legacyToolModal) .icon-btn{color:var(--tu-text);background:var(--tu-raised);border-color:var(--tu-line);flex-shrink:0;width:42px;height:42px}
:is(#toolModal,#legacyToolModal) :is(button,a):focus-visible{outline:3px solid var(--tu-ink);outline-offset:3px}
#toolModal .tool-panel{width:min(780px,100%)}#toolBody{padding:24px}
#toolBody .tool-intro{display:flex;align-items:center;gap:8px;color:var(--tu-muted);font-size:13px;margin:0 0 22px;padding:12px 14px;border:1px solid var(--tu-line);background:var(--tu-raised);border-radius:10px;line-height:1.6}
#toolBody .tool-field{gap:9px;margin-bottom:20px}#toolBody .tool-field label{color:var(--tu-text);font-size:13px;font-weight:600}
#toolBody .tool-field :is(input,textarea,select){background:var(--tu-control);color:var(--tu-text);border:1px solid var(--tu-line);border-radius:10px;padding:12px 14px;min-height:46px;font-size:14px;line-height:1.6}
#toolBody .tool-field textarea{min-height:168px;font-family:ui-monospace,SFMono-Regular,Consolas,"Microsoft YaHei",monospace;resize:vertical}
#toolBody .tool-field :is(input,textarea,select):focus-visible{outline:3px solid var(--tu-ink);outline-offset:2px}
#toolBody :is(input,textarea)::placeholder{color:var(--tu-muted);opacity:1}
#toolBody .tool-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
#toolBody .action-btn{min-height:44px;height:auto;padding:10px 16px;background:var(--tu-raised);color:var(--tu-text);border:1px solid var(--tu-line);border-radius:10px;font-size:13px}
#toolBody .action-btn.primary{background:var(--tu-primary);border-color:var(--tu-primary);color:var(--tu-on-primary)}#toolBody .action-btn:hover{transform:none;box-shadow:none;border-color:var(--tu-ink)}
#toolBody .tool-result-label{font-size:12px;color:var(--tu-muted);font-weight:600;margin:0 0 8px}
#toolBody .tool-output{min-height:100px;max-height:42vh;overflow:auto;border:1px solid var(--tu-line);border-radius:12px;padding:16px;background:var(--tu-raised);color:var(--tu-text);font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,"Microsoft YaHei",monospace;overflow-wrap:anywhere;white-space:pre-wrap}
#toolBody .tool-output.is-error{color:#ff9fae}html[data-theme="light"] #toolBody .tool-output.is-error{color:#af263f}
#toolBody .calc-screen{background:var(--tu-control);border-color:var(--tu-line);padding:20px}#toolBody .calc-screen small{color:var(--tu-muted);font-size:12px}#toolBody .calc-screen strong{color:var(--tu-text);font-size:clamp(24px,5vw,36px);margin-top:8px}
#toolBody .calc-key{min-height:54px;background:var(--tu-raised);color:var(--tu-text);border:1px solid var(--tu-line);border-radius:10px;font-size:19px}#toolBody .calc-key.op{color:var(--tu-ink);background:var(--tu-tint)}#toolBody .calc-key.eq{color:#fff;background:var(--tu-primary)}#toolBody .calc-key.danger{color:#ff9fae}html[data-theme="light"] #toolBody .calc-key.danger{color:#af263f}
#toolBody .bin-item{background:var(--tu-raised);border-color:var(--tu-line);padding:16px}#toolBody .bin-item span,#toolBody .bin-status{color:var(--tu-muted);font-size:12px}#toolBody .bin-item strong{font-size:14px;color:var(--tu-text)}
#toolBody .scratch-meta{font-size:12px;align-items:center;flex-wrap:wrap;gap:12px;color:var(--tu-muted)}#toolBody .scratch-meta button{padding:9px 12px;min-height:42px;border:1px solid var(--tu-line);border-radius:9px;background:var(--tu-raised);color:var(--tu-text);margin-left:8px}
#legacyToolModal .legacy-tool-panel{width:min(1240px,100%);height:min(900px,calc(100dvh - 48px));grid-template-rows:auto minmax(0,1fr)}#legacyToolModal iframe{background:var(--tu-page);min-height:0}
#legacyToolModal .legacy-frame-wrap{min-height:0;position:relative}
#legacyToolModal .tool-load-status{position:absolute;inset:0;display:grid;place-content:center;gap:12px;text-align:center;color:var(--tu-muted);background:var(--tu-page);pointer-events:none}#legacyToolModal .tool-load-status[hidden]{display:none}
@media(max-width:640px){#cardGrid .internal-card{min-height:204px;padding:20px}:is(#toolModal,#legacyToolModal){padding:8px}:is(#toolModal,#legacyToolModal) .modal-panel{max-height:calc(100dvh - 16px);border-radius:16px}:is(#toolModal,#legacyToolModal) .modal-panel>header{padding:16px}:is(#toolModal,#legacyToolModal) h3{font-size:19px}#toolBody{padding:18px 16px}#toolBody .tool-actions .action-btn{flex:1 1 110px;justify-content:center}#legacyToolModal .legacy-tool-panel{height:calc(100dvh - 16px)}#legacyToolModal .tool-window-actions{gap:5px}}
@supports not (height:100dvh){:is(#toolModal,#legacyToolModal) .modal-panel{max-height:calc(100vh - 32px)}#legacyToolModal .legacy-tool-panel{height:calc(100vh - 32px)}}
@media(prefers-reduced-motion:reduce){#cardGrid .internal-card{transition:none}#cardGrid .internal-card:hover{transform:none}}
#cardGrid .card-launch{font:inherit;color:inherit;background:none;border:0;padding:0;text-align:left;line-height:inherit;cursor:pointer;max-width:100%}
#cardGrid .card-launch:focus-visible{outline:2px solid var(--tu-ink);outline-offset:4px;border-radius:3px}
#cardGrid .internal-card:focus-within{border-color:var(--tu-ink)}
#cardGrid .internal-card .card-kind.local{border-radius:7px}
