/* Full-screen converter page. Builds on styles.css; text and tap targets are sized for phones. */
html,body.tool-page{height:100%;overflow:hidden;overscroll-behavior:none}
.tool-page{display:flex;flex-direction:column;height:100vh;height:100dvh;font-size:14px}
.tool-bar{flex:none;display:flex;align-items:center;gap:14px;min-height:54px;padding:calc(6px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 6px calc(16px + env(safe-area-inset-left));background:var(--paper);border-bottom:1px solid var(--line)}
.tool-bar .wordmark{font-size:19px;gap:7px}
.tool-bar .wordmark>svg{width:22px;height:25px}
.tool-title{font-size:13px;font-weight:600;padding-left:14px;border-left:1px solid var(--line);white-space:nowrap}
.tool-bar .engine-status{margin-left:auto;font-size:12px;min-width:0;text-align:right}
.tool-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 380px}

.tool-viewer{min-width:0;min-height:0;display:flex}
.tool-viewer .workspace-canvas{flex:1;min-height:0}
.preview-empty strong{font-size:22px}
.preview-empty p{font-size:13px;max-width:320px;line-height:1.55}
.is-working .preview-empty svg{stroke:var(--accent);opacity:1;animation:breathe 1.3s infinite}
.viewer-top{position:absolute;top:12px;left:14px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;pointer-events:none}
.viewer-info{min-width:0;display:flex;flex-direction:column;gap:7px}
.tool-viewer .preview-name{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-viewer .preview-legend{position:static;font-size:12px;gap:6px 13px}
.tool-viewer .legend-dot{width:8px;height:8px}
.tool-viewer .preview-controls{pointer-events:auto;flex:none}
.tool-viewer .icon-button{width:40px;height:40px;border-radius:7px;font-size:19px}
.tool-viewer .workspace-hint{right:14px;bottom:12px;font:12px "Segoe UI",Arial,sans-serif;letter-spacing:0;pointer-events:none}
.tool-viewer .workspace-hint>span{margin:0}
.preview-load{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.hint-touch{display:none}
@media(hover:none) and (pointer:coarse){.hint-touch{display:inline}.hint-mouse{display:none}}

.tool-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--paper);border-left:1px solid var(--line)}
.panel-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.panel-section{padding:16px;border-bottom:1px solid var(--line)}
.tool-page .drop-area{margin-top:0;padding:18px 10px 14px;border-radius:9px}
.tool-page .drop-area strong{font-size:14px}
.tool-page .drop-area>span{font-size:13px}
.tool-page .drop-area small{font-size:12px;margin-top:8px}
.has-files .drop-icon{display:none}
.has-files .drop-area{padding:13px 10px}
.has-files .drop-area small,.has-files .drop-area>span{display:none}
.tool-page .example-button{min-height:44px;padding:0 2px;font-size:13px}
.tool-page .file-list{max-height:none;overflow:visible}
.tool-page .file-list:empty{display:none}
.tool-page .file-row{min-height:54px;padding:8px;gap:11px;border-radius:7px}
.tool-page .file-icon{width:32px;height:36px;flex:none;font-size:16px}
.tool-page .file-row-name{font-size:14px}
.tool-page .file-row-detail{font-size:12px;line-height:1.4}
.tool-page .remove-file{width:40px;height:44px;flex:none;font-size:22px}

.panel-details{padding:0}
.panel-details summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.panel-details .setting-grid{margin:0;padding:0 16px;grid-template-columns:1fr;gap:12px}
.panel-details .setting-grid label{font-size:12px}
.tool-page select{font-size:14px;min-height:44px;padding:8px}
.panel-details .check-row{min-height:44px;margin:0;padding:0 16px;font-size:14px}
.panel-details .check-row:last-child{margin-bottom:8px}
.panel-details .check-row input{width:18px;height:18px}
.tool-page .conversion-log{border-top:0}
.tool-page .conversion-log summary{font-size:14px;padding:0 16px}
.tool-page .conversion-log summary>span{float:none;font:12px "Segoe UI",Arial,sans-serif;font-weight:400;color:var(--muted)}
.tool-page .conversion-log pre{font-size:12px;line-height:1.6;max-height:40vh;padding:12px 16px}

.tool-result{border-bottom:1px solid var(--line)}
.result-message{display:flex;align-items:flex-start;gap:12px;padding:16px}
.result-message strong{font-size:15px;font-weight:600}
.result-message p{font-size:13px;line-height:1.5;color:var(--muted);margin-top:3px}
.tool-page .metrics-row{grid-template-columns:repeat(2,1fr);padding:0 16px 14px;border-top:0;gap:10px}
.tool-page .metric{border:1px solid var(--line);border-radius:7px;padding:9px 11px}
.tool-page .metric:last-child{border:1px solid var(--line)}
.tool-page .metric small{font-size:12px}
.tool-page .metric strong{font-size:20px;margin-top:2px}
.tool-page .inline-error{font-size:13px;overflow-wrap:anywhere}
.privacy-note{padding:14px 16px 18px;font-size:12px;line-height:1.55;color:var(--muted)}
.privacy-note a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}

.tool-actions{flex:none;display:flex;flex-direction:column;gap:9px;padding:12px calc(16px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) 16px;background:var(--paper);border-top:1px solid var(--line)}
.conversion-note{font-size:13px;color:var(--muted);text-align:center;min-height:18px}
.action-buttons{display:flex;gap:9px}
.action-buttons .button{flex:1;min-width:0;min-height:50px;padding:0 14px;gap:12px;font-size:15px}
.action-buttons #convert-button.secondary{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:none}

.progress-track{height:5px;border-radius:5px;background:var(--line);overflow:hidden}
.progress-track>div{height:100%;width:0;background:var(--accent);border-radius:5px;transition:width .2s}
.progress-track.working>div{width:35%!important;animation:tool-slide 1.25s ease-in-out infinite alternate}
@keyframes tool-slide{from{transform:translateX(-10%)}to{transform:translateX(200%)}}
.action-buttons.has-download{flex-direction:column}
.action-buttons.has-download .button{flex:none;width:100%}
.action-buttons.has-download #convert-button{min-height:44px;font-size:14px}
#download-button{min-height:56px;font-size:16px}
#download-label{min-width:0;font-size:inherit;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#download-button>span:last-child{flex:none}
#download-button.just-ready{animation:tool-ready .7s ease-out 2}
@keyframes tool-ready{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 30%,transparent)}}
.tool-page .download-all{width:100%;min-height:44px;font-size:14px}
.row-download{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border-radius:7px;background:var(--accent);color:#fff;font-size:13px;font-weight:600;white-space:nowrap}
.row-download:hover{background:var(--accent-hover)}
.tool-page #toast{bottom:calc(112px + env(safe-area-inset-bottom));width:max-content;font-size:13px}

/* Phone, portrait: model on top, controls below, action always in reach */
@media(max-width:820px){
 .tool-bar{min-height:48px;gap:10px}
 .tool-bar .wordmark{font-size:17px}
 .tool-title{font-size:12px;padding-left:10px}
 .tool-bar .engine-status{font-size:11px}
 .tool-main{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(170px,36%) minmax(0,1fr)}
 .tool-panel{border-left:0;border-top:1px solid var(--line)}
 .tool-viewer .workspace-hint{display:none}
 .preview-empty{padding:30px 16px 12px}
 .preview-empty svg{height:44px;width:44px;margin-bottom:9px}
 .preview-empty strong{font-size:18px}
 .preview-empty p{margin-top:6px}
 .tool-page select{font-size:16px} /* iOS zooms in on smaller fields */
 .tool-page .metrics-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 .tool-page .metric{padding:7px 8px}
 .tool-page .metric small{font-size:11px;line-height:1.25}
 .tool-page .metric strong{font-size:17px}
}
/* Phone, landscape: side by side, the height is too small to stack */
@media(max-height:520px) and (min-width:560px){
 .tool-bar{min-height:40px;padding-top:calc(3px + env(safe-area-inset-top));padding-bottom:3px}
 .tool-main{grid-template-columns:minmax(0,1fr) minmax(280px,42%);grid-template-rows:minmax(0,1fr)}
 .tool-panel{border-top:0;border-left:1px solid var(--line)}
 .conversion-note{display:none}
 .action-buttons .button{min-height:44px}
 .tool-page .metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-color-scheme:dark){.action-buttons #convert-button.secondary{background:var(--paper)}}
