/* Ledger design: paper background, serif headings, navy and gold, thin rules */
:root{--paper:#f6f3ec;--card:#fbf9f4;--ink:#1f2430;--mute:#6a6f7a;--line:#d9d3c3;--line2:#e4ded0;--navy:#1b2a49;--gold:#b08d3c;
--green:#2f855a;--amber:#b7791f;--red:#c0392b;--grey:#6b7785;
--green-bg:#e6f0e8;--amber-bg:#f6ecd5;--red-bg:#f6e0dc}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 "Segoe UI",Calibri,Arial,sans-serif}
a{color:var(--link,var(--navy));text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,.brand{font-family:Georgia,"Times New Roman",serif;font-weight:400}

header.top{background:var(--navy);color:var(--on-brand,var(--paper));border-bottom:3px solid var(--gold)}
header.top .in{max-width:1180px;margin:auto;padding:14px 32px;display:flex;gap:30px;align-items:baseline;flex-wrap:wrap}
header.top .brand{font-size:20px;letter-spacing:.02em;color:var(--on-brand,var(--paper))}
header.top nav{display:flex;gap:20px;flex-wrap:wrap;flex:1}
header.top nav a{color:var(--nav-ink,#cbd3e4);font-size:14px;padding-bottom:3px;border-bottom:1px solid transparent}
header.top nav a:hover{color:var(--on-brand,#fff);text-decoration:none;border-bottom:1px solid var(--gold)}
header.top .who{color:var(--nav-ink,#cbd3e4);font-size:13px;display:flex;gap:10px;align-items:center}
header.top .who a,header.top .who button.link{color:var(--on-brand,#fff)}

main{max-width:1180px;margin:0 auto;padding:30px 32px 70px}
h1{font-size:32px;margin:0 0 4px;line-height:1.2}
h2{font-size:21px;margin:34px 0 10px;border-bottom:1px solid var(--navy);padding-bottom:6px}
h3{font-size:17px;margin:0 0 8px}
.sub{color:var(--mute);margin:0 0 16px}
.muted{color:var(--mute)}.small{font-size:13px}

/* stat strip */
.grid{display:grid;gap:0}
.g4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:1px solid var(--navy);border-bottom:1px solid var(--line);margin:22px 0 0}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:34px}
.stat{padding:16px 14px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}
.stat b{display:block;font:400 38px/1 Georgia,serif}
.stat span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}

/* tables */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:left;padding:8px 10px;border-bottom:1px solid #cfc8b6;font-weight:600}
td{padding:12px 10px;border-bottom:1px solid var(--line2);vertical-align:top}
td small,td .small{color:var(--mute)}
tr:last-child td{border-bottom:1px solid var(--line)}
td a b{font-weight:600}

/* status: dash + words */
.badge{display:inline-block;font-size:13px;font-weight:600;white-space:nowrap;color:var(--sc,var(--grey))}
.badge:before{content:"";display:inline-block;width:14px;height:2px;background:var(--sc,var(--grey));vertical-align:middle;margin-right:6px}
.b-overdue,.b-missing,.b-red{--sc:var(--red)}
.b-review,.b-due_soon,.b-amber{--sc:var(--amber)}
.b-complete,.b-green{--sc:var(--green)}
.b-open,.b-na,.b-grey{--sc:var(--grey)}
.dot{display:inline-block;width:14px;height:2px;margin-right:7px;vertical-align:middle}
.dot.green{background:var(--green)}.dot.amber{background:var(--amber)}.dot.red{background:var(--red)}
.pill{font-size:11px;border:1px solid var(--line);border-radius:2px;padding:0 6px;color:var(--mute);white-space:nowrap}
.pill.confirm{border-color:var(--amber);color:var(--amber)}

/* cards and forms */
.card{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:18px 20px;margin-bottom:18px}
label{display:block;font-weight:600;font-size:13px;margin:12px 0 4px;color:#3b4252}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid #c9c2ae;border-radius:3px;background:#fffdf8;color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:-1px}
textarea{min-height:80px}
.row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
button,.btn{display:inline-block;background:var(--navy);color:var(--on-brand,var(--paper));border:1px solid var(--navy);border-radius:3px;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer}
button:hover,.btn:hover{background:#26396a;text-decoration:none}
button.sec,.btn.sec{background:transparent;color:var(--link,var(--navy));border-color:#9aa3b8}
button.danger{background:transparent;color:var(--red);border-color:var(--red)}
button.link{background:none;border:0;color:var(--link,var(--navy));padding:0;font-weight:400;text-decoration:underline}
.inline,.inline form{display:inline}
.flash{padding:10px 14px;border-left:3px solid;margin-bottom:14px;background:var(--card)}
.flash.ok{border-color:var(--green);color:var(--green)}.flash.err{border-color:var(--red);color:var(--red);background:var(--red-bg)}

/* company tabs */
.tabs{display:flex;gap:22px;margin:14px 0 28px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tabs a{padding:8px 0;color:var(--mute);font-size:14.5px;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--link,var(--navy));font-weight:600;border-bottom-color:var(--gold)}
.tabs a:hover{text-decoration:none;color:var(--link,var(--navy))}
.note{background:var(--amber-bg);border-left:3px solid var(--amber);color:#6b4a10;padding:10px 14px;margin:10px 0}
.center{max-width:420px;margin:70px auto}
details summary{cursor:pointer;color:var(--link,var(--navy));margin-top:10px}

@media (max-width:700px){main{padding:20px 16px 60px}header.top .in{padding:12px 16px}.stat{border-right:0;border-bottom:1px solid var(--line)}}

/* spacing and wrapping fixes */
.table-wrap{margin-bottom:6px}
.table-wrap + .grid{margin-top:24px}
.g2 td:nth-child(2){white-space:nowrap}

/* document preview next to the checklist item */
.split{display:grid;grid-template-columns:minmax(300px,2fr) minmax(360px,3fr);gap:24px;align-items:start}
.split .card{margin-bottom:14px}
.viewer{position:sticky;top:12px;border:1px solid var(--line);background:var(--card);border-radius:3px}
.vbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.vbar b{font-weight:600;word-break:break-all}
.vbar .btn{padding:4px 10px;font-size:13px}
.vframe{display:block;width:100%;height:78vh;border:0;background:#fff}
.vnone{padding:40px 20px;text-align:center}
.docrow{padding:8px 0;border-bottom:1px solid var(--line2)}.docrow:last-child{border-bottom:0}
.docbtn{display:block;text-align:left;font-weight:600;word-break:break-all}.docbtn.on{color:var(--gold)}
@media (max-width:900px){.split{grid-template-columns:1fr}.viewer{position:static}.vframe{height:60vh}}
.g1{grid-template-columns:1fr;gap:0}

/* timeline overview */
.trow{cursor:pointer}.trow:hover td{background:var(--line2)}.trow.on td{background:var(--line2);box-shadow:inset 3px 0 0 var(--gold)}
.vlist{padding:6px 12px;border-bottom:1px solid var(--line)}.vlist .docbtn{padding:3px 0}

/* firm branding */
header.top .brand{display:flex;align-items:center;gap:12px}
header.top .brand small{display:block;font-family:system-ui,sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#cbd3e4;margin-top:2px}
header.top .brand img.logo{height:46px;width:auto;border-radius:3px}
header.top .in{align-items:center}
.loginlogo{max-height:80px;max-width:100%}

/* footer */
footer.foot{max-width:1180px;margin:0 auto;padding:18px 32px 28px;border-top:1px solid var(--line);text-align:center;font-size:13px;line-height:1.5;color:var(--muted,#6b7280)}
@media (max-width:700px){footer.foot{padding:16px}}

/* top bar: firm name left; user on top right, all menu links on one line below it */
header.top .in{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"brand who" "brand nav";column-gap:30px;row-gap:8px;align-items:center}
header.top .brand{grid-area:brand}
header.top .who{grid-area:who;justify-content:flex-end}
header.top nav{grid-area:nav;justify-content:flex-end;flex-wrap:nowrap;white-space:nowrap;flex:none}
@media (max-width:900px){
  header.top .in{grid-template-columns:1fr;grid-template-areas:"brand" "who" "nav";row-gap:10px}
  header.top .who{justify-content:flex-start}
  header.top nav{justify-content:flex-start;flex-wrap:wrap;white-space:normal}
}

.loginbar{background:var(--navy);border-bottom:3px solid var(--gold);height:56px}
.center.card{border-top:4px solid var(--navy)}
.colorrow{display:flex;gap:10px;align-items:center}.colorrow input[type=color]{width:56px;height:38px;padding:2px;flex:none}.colorrow input[type=text]{width:130px;font-family:monospace}
.listhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:34px 0 10px;border-bottom:1px solid var(--navy);padding-bottom:6px}
.listhead h2{margin:0;border:0;padding:0}.listhead form{margin:0}.listhead input{width:300px;max-width:100%}
.listfoot{display:flex;align-items:center;gap:14px;margin:12px 0 0}
button.star{background:none;border:0;padding:0 4px;font-size:20px;line-height:1;color:var(--mute);cursor:pointer;font-weight:400}
button.star.on{color:var(--gold)}button.star:hover{color:var(--gold)}
.starcell{width:34px;text-align:right}
[hidden]{display:none!important}
h1 form.inline{display:inline}

/* documents list beside the preview: stack file, added, checklist item and remove on top of each other */
.split table:not(#tl),.split table:not(#tl) tbody{display:block;width:100%}
.split table:not(#tl) tr:first-child:has(th){display:none}
.split table:not(#tl) tr{display:block;padding:12px 0;border-bottom:1px solid var(--line2)}
.split table:not(#tl) td{display:block;width:auto;padding:3px 0;border:0;white-space:normal}
.split table:not(#tl) td:nth-child(2)::before{content:"Kept";display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#777);margin-bottom:3px}
.split table:not(#tl) td:nth-child(3)::before{content:"Added: ";color:var(--muted,#777)}
.split table:not(#tl) td:nth-child(4)::before{content:"Checklist item";display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#777);margin-bottom:3px}
.split table:not(#tl) td select{width:100%;max-width:100%!important}
.split table:not(#tl) td form.inline{display:flex;gap:8px;align-items:center}

/* smart upload confirmation cards */
.intake{margin-bottom:14px}
.intake-form{display:grid;gap:10px;max-width:720px}
.intake-form label{display:grid;gap:3px;font-size:13px}
.intake-form input,.intake-form select{max-width:100%;width:100%}
.intake-form label.chk{display:flex;gap:8px;align-items:center}
.intake-form label.chk input{width:auto}
.intake-actions{display:flex;gap:8px;margin-top:8px}
.intake .warn{background:#fdf1e3;border:1px solid #e3b878;padding:8px 10px;border-radius:3px}
.intake code{word-break:break-all;font-size:12px}

/* profile pictures */
.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;display:inline-block;vertical-align:middle;background:#fff}
.avatar.ini{display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;background:var(--gold);color:#1f2430}
.avatar.big{width:84px;height:84px;font-size:26px;flex:none}
.avatar-link{display:inline-flex;text-decoration:none}
.avatar-edit{display:flex;gap:18px;align-items:flex-start}
.avatar-edit form{flex:1}

/* about page */
.terms h3{margin:18px 0 6px}.terms h3:first-child{margin-top:0}
.terms ul{margin:6px 0 10px 20px}.terms li{margin-bottom:4px}

/* scan progress */
.scanrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.scanstat{font-size:13px;color:var(--muted,#666)}
.scanstat.done{color:#1f6b3a;font-weight:600}
.spin{display:inline-block;width:14px;height:14px;border:2px solid #c9c4b6;border-top-color:var(--navy,#1b2a49);border-radius:50%;margin-right:8px;vertical-align:-2px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;top:18px;right:18px;z-index:50;max-width:360px;background:#fff;border:1px solid #9fcfae;border-left:5px solid #2f8f55;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:12px 38px 12px 14px;border-radius:3px;font-size:14px;transition:opacity .7s}
.toast.out{opacity:0}
.toastx{position:absolute;top:4px;right:6px;border:0;background:none;font-size:20px;line-height:1;cursor:pointer;color:#555}

/* tick box in front of its text (about page, intake cards) */
label.chk{display:flex!important;flex-direction:row;gap:10px;align-items:flex-start;font-weight:400}
label.chk input[type=checkbox]{width:auto!important;flex:none;margin:3px 0 0}

/* help page */
.helphead{margin-top:6px}
.helphead .toc{display:flex;flex-wrap:wrap;gap:6px 14px;max-width:720px}
.hsec{max-width:820px;margin-bottom:16px;scroll-margin-top:12px}
.hsec h2{font-size:19px;margin:0 0 8px;border:0;padding:0}
.hsec ul,.hsec ol{margin:6px 0 10px 20px}.hsec li{margin-bottom:5px}
.hsec table{width:100%}
.hsec dt{font-weight:600;margin-top:8px}.hsec dd{margin:2px 0 0 0}
.helplink{margin:-24px 0 12px;text-align:right;font-size:13px}
.busyline{display:flex;align-items:center}

.viewbar{background:#fff4d6;border-bottom:2px solid #d9a400;color:#5a4300;padding:8px 16px;font-size:14px}.viewbar form{display:inline;margin-left:10px}

.kycbar{padding:8px 16px;font-size:14px;border-bottom:2px solid}.kycbar a{margin-left:8px;font-weight:600}
.kycbar.locked{background:var(--red-bg);border-color:var(--red);color:var(--red)}
.kycbar.legacy,.kycbar.expiring,.kycbar.mine{background:#fff4d6;border-color:#d9a400;color:#5a4300}
.pill.kyc-locked{border-color:var(--red);color:var(--red)}.pill.kyc-legacy,.pill.kyc-expiring{border-color:var(--amber);color:var(--amber)}
.pill.idst.valid{border-color:var(--green);color:var(--green)}.pill.idst.expiring,.pill.idst.pending{border-color:var(--amber);color:var(--amber)}
.pill.idst.expired,.pill.idst.none,.pill.idst.rejected{border-color:var(--red);color:var(--red)}

.teambar{padding:6px 16px;font-size:14px;background:#eef3fb;border-bottom:1px solid #c9d6ea}.teambar.ro{background:#fff4d6;border-color:#d9a400;color:#5a4300}.teambar a{margin-left:8px;font-weight:600}
.wk td select{max-width:170px}

.pill.lvl-high{background:var(--red-bg);color:var(--red)}.pill.lvl-medium{background:#fff4d6;color:#5a4300}.pill.lvl-low{background:#e6f4ea;color:#1e5b2f}
pre.polbody{white-space:pre-wrap;font:14px/1.5 inherit;background:#fff;border:1px solid #ddd;padding:14px;border-radius:6px}
a.stat{text-decoration:none;color:inherit;display:block}

/* header: brand and user on the first row, the menu on its own full-width row, admin pages in a dropdown */
header.top .in{grid-template-columns:1fr auto;grid-template-areas:"brand who" "nav nav";row-gap:10px}
header.top nav{grid-area:nav;justify-content:flex-start;flex-wrap:wrap;white-space:normal;gap:6px 22px;border-top:1px solid rgba(255,255,255,.18);padding-top:10px;align-items:center}
header.top .who{flex-wrap:wrap}
details.navmenu{position:relative}
details.navmenu summary{margin:0;list-style:none;cursor:pointer;color:var(--nav-ink,#cbd3e4);font-size:14px;padding-bottom:3px;border-bottom:1px solid transparent}
details.navmenu summary::-webkit-details-marker{display:none}
details.navmenu summary::after{content:" \25BE"}
details.navmenu[open] summary,details.navmenu summary:hover{color:var(--on-brand,#fff);border-bottom-color:var(--gold)}
details.navmenu .menu{position:absolute;top:100%;left:-14px;margin-top:6px;z-index:30;min-width:170px;background:var(--navy);border:1px solid var(--gold);border-radius:3px;padding:10px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
details.navmenu .menu a{border-bottom:0;padding:0;white-space:nowrap}
@media (max-width:700px){header.top .in{grid-template-columns:1fr;grid-template-areas:"brand" "who" "nav"}header.top .who{justify-content:flex-start}}

header.top nav .ver{margin-left:auto;font-size:12px;color:var(--nav-ink,#cbd3e4);opacity:.8;white-space:nowrap}

.listhead form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.listhead select{width:auto;min-width:190px;max-width:100%}.listhead input[type=search]{width:330px}
@media (max-width:700px){.listhead form{justify-content:flex-start;width:100%}.listhead select,.listhead input[type=search]{flex:1 1 100%;width:100%}}

header.top nav details.navmenu .menu a{border-bottom:1px solid transparent;padding:0 0 2px}
header.top nav details.navmenu .menu a:hover{border-bottom-color:var(--gold)}

html{overflow-y:scroll;scrollbar-gutter:stable}
.avatar.sm{width:36px;height:36px;font-size:13px;flex:none}
.ucell{display:flex;gap:12px;align-items:flex-start}
.pick summary{list-style:none;cursor:pointer}.pick summary::-webkit-details-marker{display:none}.pick summary span:hover{text-decoration:underline}.pick .pop{margin-top:8px}

/* photos of where a paper original is kept */
.placephotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:8px 0 14px}
.placephotos figure{margin:0;background:var(--card,#fff);border:1px solid var(--line2,#ddd);border-radius:8px;overflow:hidden}
.placephotos img{display:block;width:100%;height:170px;object-fit:cover}
.placephotos figcaption{padding:8px 10px;font-size:14px}
.placephotos figcaption span{display:block;margin-top:3px}
.placephotos.old img{filter:grayscale(.6);opacity:.85}
img.pthumb{float:left;width:44px;height:44px;object-fit:cover;border-radius:6px;margin:2px 8px 2px 0;border:1px solid var(--line2,#ddd)}
td.kept::after{content:"";display:block;clear:both}

/* Users page: the role is a link; clicking it shows the choice, which saves at once */
details.rolepick{display:inline-block}
details.rolepick summary{list-style:none;cursor:pointer;display:inline;color:var(--link,var(--navy));text-decoration:underline;text-underline-offset:2px}
details.rolepick summary::-webkit-details-marker{display:none}
details.rolepick[open] summary{font-weight:600}
details.rolepick form{margin-top:6px}
/* Users page: the new password field and its Set button on one line */
form.pwrow{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
form.pwrow input{width:160px;min-width:0;margin:0}
form.pwrow button{flex:none;margin:0}

/* Company details: the company folder */
.folderbox{border:1px solid var(--line2,#d9dee8);border-radius:8px;padding:10px 14px;margin:14px 0}
.folderbox label{margin-top:0}
.folderbox .foldpath{margin:4px 0 6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* nationality markers (#123) */
.pill.nat.local{background:#e6f2ea;color:#245c36;border-color:#b7d8c1}
.pill.nat.foreign{background:#eef0fb;color:#2f3f8f;border-color:#c6cdf0}
.pill.nat.non-resident{background:#fbf1e3;color:#8a5a00;border-color:#ecd3a6}
details.pick.inline{display:inline-block;margin-left:6px}
/* the registers as a director sees them (#130): read only */
.ro form[method="post"],.ro details.pick,.ro .staff{display:none!important}
a.natlink{text-decoration:none}a.natlink:hover .pill{border-color:var(--navy);color:var(--navy);text-decoration:underline}
.pill.risk.low{border-color:var(--green,#16794a);color:var(--green,#16794a)}.pill.risk.medium{border-color:var(--amber);color:var(--amber)}.pill.risk.high{border-color:var(--red);color:var(--red);font-weight:700}
.pill.client.onboarding{border-color:var(--amber);color:var(--amber);font-weight:700}.pill.client.former{border-color:var(--grey);color:var(--grey)}
