@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-1Thin.woff2') format('woff2');font-weight:100;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-2ExtraLight.woff2') format('woff2');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-3Light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-4Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-5Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-6SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-7Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-8ExtraBold.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:Paperlogy;src:url('vendor/paperlogy/Paperlogy-9Black.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}

:root{--font:'Paperlogy','Apple SD Gothic Neo','Malgun Gothic',sans-serif;--field-line:#dfe3e8;--field-hover:#b4bfce;--field-focus:#3469e8;--field-radius:8px;--field-background:#fff;--field-label:#68717f;--surface-soft:#f4f5f7}
.number-display{font-variant-numeric:tabular-nums}
body{font-family:var(--font);letter-spacing:0}
button,input,textarea,select{font-family:var(--font);letter-spacing:0}
input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=hidden]),select,textarea{border:1px solid var(--field-line);border-radius:var(--field-radius);background:var(--field-background);color:#202735;font-size:14px;padding:13px 14px;min-height:48px;box-shadow:0 1px 2px #17203002;transition:border-color .16s,box-shadow .16s,background .16s}
input::placeholder,textarea::placeholder{color:#9aA1ac;font-weight:400;opacity:1}
input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--field-hover)}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--field-focus);box-shadow:0 0 0 3px #3469e814}
input:disabled,select:disabled,textarea:disabled{background:#f2f3f5;color:#9aA1ac;cursor:not-allowed;opacity:.75}
input[readonly],textarea[readonly]{background:#f8f9fb}
select{appearance:none;-webkit-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%236b7280' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
select option{background:#fff;color:#202735;font-family:var(--font)}
label{font-size:13px;color:#384252;font-weight:500;gap:8px}
label.field-control{display:flex;position:relative;flex-direction:column;gap:3px;padding:10px 14px 8px;border:1px solid var(--field-line);border-radius:var(--field-radius);background:#fff;transition:border-color .16s,box-shadow .16s;min-width:0;align-self:start}
.field-control:hover{border-color:var(--field-hover)}
.field-control:focus-within{border-color:var(--field-focus);box-shadow:0 0 0 3px #3469e810}
.field-control>.control-label{font-size:11px;color:var(--field-label);line-height:1.5;font-weight:400;letter-spacing:0}
.field-control>.control-label small{font-size:10px;color:#939baa;margin-left:4px}
.field-control>input:not([type=range]),.field-control>select,.field-control>textarea{min-height:26px;padding:2px 0;border:0;border-radius:0;box-shadow:none;background-color:transparent;font-size:14px;font-weight:500;line-height:1.65}
.field-control>select{padding-right:28px;background-position:right 0 center}
.field-control>input:focus,.field-control>select:focus,.field-control>textarea:focus{outline:0;box-shadow:none}
.field-control>input[readonly]{color:#5c6675}
.field-control>small{font-size:11px;font-weight:400;color:#7b8491}
.field-control:has(>input:disabled,>textarea:disabled,>select:disabled){background:#f4f5f7;opacity:.7}
.field-control:has(>:user-invalid),.upload-control.has-error .upload-dropzone{border-color:#d84949}
.field-textarea{padding:13px 15px}
.field-textarea>textarea{resize:vertical;min-height:160px;font-weight:400}
.field-textarea>textarea.code-editor{font-family:var(--mono);line-height:1.8;font-size:13px;min-height:320px;white-space:pre;background:transparent}

input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;position:relative;width:19px;height:19px;min-height:0;flex:0 0 auto;margin:0;padding:0;border:1.5px solid #d7dce3;border-radius:4px;background:#fff;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
input[type=radio]{border-radius:50%}
input[type=checkbox]:hover,input[type=radio]:hover{border-color:#3469e8}
input[type=checkbox]:checked{background:#3469e8;border-color:#3469e8;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4'%3E%3Cpath d='m5 12 4 4 10-10'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat}
input[type=radio]:checked{border-color:#3469e8;background:#3469e8;box-shadow:inset 0 0 0 4px #fff}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:0;box-shadow:0 0 0 3px #3469e824}
input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.4;cursor:not-allowed}
input[role=switch]{width:36px;height:21px;border:0;border-radius:20px;background:#c4c9d1;background-image:none;box-shadow:none}
input[role=switch]:before{content:'';position:absolute;width:15px;height:15px;background:#fff;border-radius:50%;left:3px;top:3px;box-shadow:0 1px 3px #0002;transition:transform .16s}
input[role=switch]:checked{background:#3469e8;background-image:none}
input[role=switch]:checked:before{transform:translateX(15px)}
label.selection-control{display:flex;flex-direction:row;align-items:center;gap:9px;font-weight:400;color:#4b5563}
input[type=range]{appearance:none;-webkit-appearance:none;min-height:24px;height:24px;padding:0;background:transparent;border:0;box-shadow:none;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:10px;background:#d9e3fb}
input[type=range]::-moz-range-track{height:5px;border-radius:10px;background:#d9e3fb}
input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-6.5px;border:2px solid white;border-radius:50%;background:#3469e8;box-shadow:0 1px 3px #3469e844}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border:2px solid white;border-radius:50%;background:#3469e8}
input[type=range]:focus-visible{outline:2px solid #b1c5f5;outline-offset:4px;border-radius:5px}
input[type=color]{border:1px solid var(--field-line);border-radius:8px;min-height:46px;padding:5px;background:#fff}

.upload-control{min-width:0}
label.upload-label{position:relative;font-size:12px;gap:10px}
.upload-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;opacity:0!important;overflow:hidden;clip-path:inset(50%);border:0!important}
.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:218px;border:1px solid transparent;border-radius:12px;background:#f3f4f5;text-align:center;padding:27px 18px;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s;line-height:1.7}
.upload-dropzone:hover{background:#edf1f7;border-color:#cbd7eb}
.upload-dropzone:focus-visible,.upload-label:focus-within .upload-dropzone{outline:0;border-color:#3469e8;box-shadow:0 0 0 3px #3469e814}
.upload-dropzone.drag-active{border-color:#3469e8;background:#edf3ff;box-shadow:0 0 0 3px #3469e810}
.upload-symbol{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#fff;color:#424a56;box-shadow:0 3px 12px #17203004;margin-bottom:8px}
.upload-dropzone strong{font-size:14px;color:#242b36;font-weight:600;word-break:keep-all}
.upload-browse{font-size:12px;color:#707986;font-weight:400}
.upload-browse b{font-weight:500;color:#3469e8;text-decoration:underline;text-underline-offset:3px}
.upload-dropzone small{font-size:10px;color:#838b97;font-weight:400;margin-top:6px}
.upload-file-list{display:grid;gap:10px;margin-top:14px}
.upload-file-list:empty{display:none}
.upload-file-card{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid #dfe3e8;border-radius:11px;padding:11px 12px;background:#fff;cursor:grab}
.upload-file-card:not([draggable=true]){cursor:default}
.upload-file-type{display:grid;place-items:center;flex-shrink:0;width:43px;height:46px;border:1px solid #e4e6ea;border-radius:9px;background:#f5f5f6;font-size:10px;font-weight:500;color:#606875}
.upload-file-info{display:flex;flex:1;min-width:0;flex-direction:column;gap:5px}
.upload-file-info strong{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#303744}
.upload-file-info small{font-size:11px;color:#8a919c;font-weight:400}
.upload-remove{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;color:#666e7b;border-radius:8px;padding:5px}
.upload-remove:hover{background:#fff0ef;color:#c24444}
.upload-status{margin:9px 0 0;font-size:11px;font-weight:400;color:#848c98}
.upload-error{color:#bf3d3d;font-size:11px;line-height:1.7;margin-top:6px}
.upload-error:empty{display:none}
@media(max-width:600px){.upload-dropzone{min-height:195px;padding:23px 13px}.upload-file-card{gap:9px;padding:10px}.upload-file-info strong{font-size:11px}.upload-symbol{width:50px;height:50px}.field-control>input:not([type=range]),.field-control>select,.field-control>textarea{font-size:16px}.upload-dropzone strong{font-size:13px}}
@media(prefers-reduced-motion:reduce){input,select,textarea,.upload-dropzone,input[role=switch]:before{transition:none}}

/* Repeated calculator inputs share the standard label and number editors. */
.row-input-field{grid-column:1/-1;min-width:0;display:grid;gap:12px}
.row-input-field .row-input-heading,.row-input-field .row-input-card-heading,.row-input-field .row-input-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.row-input-field .row-input-heading>span:first-child{font-size:12px;font-weight:600;color:#384252}
.row-input-field .row-input-count,.row-input-field .row-input-limit{font-size:11px;font-weight:400;color:var(--field-label);line-height:1.6}
.row-input-field .row-input-count{flex-shrink:0}
.row-input-field .row-input-list{display:grid;gap:14px;min-width:0}
.row-input-field .row-input-card{margin:0;padding:16px;border:1px solid var(--field-line);border-radius:12px;background:#f8f9fc;min-width:0}
.row-input-field .row-input-card-heading{margin-bottom:12px}
.row-input-field .row-input-card-heading strong{font-size:13px;font-weight:600;color:#384252}
.row-input-field .row-input-remove{min-height:30px;padding:6px 10px;font-size:11px;font-weight:400;color:#727b89;background:#fff}
.row-input-field .row-input-remove:hover:not(:disabled){color:#ba3b45;border-color:#e3bac0;background:#fff8f8}
.row-input-field .row-input-remove:disabled{opacity:.4;cursor:not-allowed}
.row-input-field .row-input-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.row-input-field .row-input-cell{min-width:0}
.row-input-field .row-input-cell.wide{grid-column:1/-1}
.row-input-field .row-input-cell>label{width:100%;margin:0;box-sizing:border-box}
.row-input-field .row-input-cell input,.row-input-field .row-input-cell select,.row-input-field .row-input-cell textarea{width:100%;min-width:0;box-sizing:border-box}
.row-input-field .row-input-actions{justify-content:flex-start;flex-wrap:wrap}
.row-input-field .row-input-actions>[data-row-add]{font-family:var(--font);font-size:12px;font-weight:500;min-height:36px}
@media(max-width:600px){.row-input-field .row-input-fields{grid-template-columns:minmax(0,1fr)}.row-input-field .row-input-card{padding:12px}.row-input-field .row-input-heading{align-items:flex-start;flex-wrap:wrap;gap:5px}.row-input-field .row-input-count{font-size:10px}}

/* VAT choice controls keep the workspace's shared labels, editors and radio skin. */
.vat-workspace .vat-native-field{display:none!important}
.vat-workspace .vat-choice-field{min-width:0;margin:0}
.vat-workspace .vat-mode-field{grid-column:1/-1;display:grid;gap:8px}
.vat-workspace .vat-choice-title{font-size:11px;line-height:1.5;font-weight:400;color:var(--field-label)}
.vat-workspace .vat-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.vat-workspace .vat-mode-option{min-width:0;min-height:44px;padding:11px 12px;white-space:normal;font-family:var(--font);font-size:12px;font-weight:500;transition:background .18s,color .18s,border-color .18s}
.vat-workspace .vat-mode-option:focus-visible{outline:2px solid var(--field-focus);outline-offset:3px}
.vat-workspace .vat-radio-field{grid-column:1/-1;padding:10px 14px 13px;border:1px solid var(--field-line);border-radius:var(--field-radius);background:var(--field-background)}
.vat-workspace .vat-radio-field>legend{padding:0 5px;margin:0}
.vat-workspace .vat-radio-options{display:flex;align-items:center;flex-wrap:wrap;gap:12px 14px;min-width:0}
.vat-workspace .vat-radio-option{margin:0;gap:7px;font-size:12px;white-space:nowrap;cursor:pointer}
.vat-workspace .result-content>.result-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vat-workspace .result-content>.result-list>.result-stat{min-width:0}
.vat-workspace .result-content>.result-list>.result-stat strong{text-align:right;overflow-wrap:anywhere}
@media(max-width:600px){.vat-workspace .result-content>.result-list{grid-template-columns:minmax(0,1fr)}.vat-workspace .vat-mode-option{font-size:11px}.vat-workspace .vat-radio-field{padding-right:10px;padding-left:10px}}
@media(prefers-reduced-motion:reduce){.vat-workspace .vat-mode-option{transition:none}}

/* Account forms stack fields vertically, so labels fill their available row. */
.account-forms>form{min-width:0}
.account-forms>form>label.field-control{width:100%;min-width:0;align-self:stretch;box-sizing:border-box;margin:0}
.account-forms>form>label.field-control>input{width:100%;min-width:0;box-sizing:border-box}
.account-forms>form>.form-error:empty{display:none}
